PyQt5QTableView与QTreeView文件展示控件使用
PYQt5 的QTableView
和QTreeView
真挺实用的,尤其在文件数据展示的时候,简直是利器。单列、多列、树结构都能搞定,适合做数据面板、文件浏览器之类的界面。你要是正好用 PyQt5 搞 GUI,下面这套用法建议收藏。
表格数据的 QTableView,用起来还挺顺。你先整一个QStandardItemModel
,把它扔给tableView
,设置列头、添加数据就行。多列也没啥复杂的,关键是setHorizontalHeaderLabels()
那一步。嗯,再来个resizeColumnsToContents()
,列宽自动适应,效果不错。
层级结构的 QTreeView就更像是文件管理器那一挂的。你用QFileSystemModel
一建模,设个setRootPath()
路径,就能把整个目录挂上去了。setHeaderHidden(True)
还能让界面更干净点。不想展示全盘?那就用setRootIndex()
只展示某个子目录就好。
从文件读数据也不难,像你要导 CSV 的话,pandas
直接上。pd.read_csv()
一行搞定,自定义一个继承QAbstractTableModel
的模型塞给tableView
。性能还行,响应也快。
交互这块建议你加点事件绑定,比如clicked.connect()
监听点击,配合index.data()
就能取值了。要是你打算支持编辑,可以灵活用setEditTriggers()
控制,不然数据一多容易卡。
样式美化方面,Qt StyleSheet
还蛮强的。你可以写.qss 文件,也能动态设置,像字体、背景色、选中状态全都能搞。界面清爽点,体验就舒服多了。
如果你项目里刚好有文件展示或结构化数据的需求,不妨试试QTableView
配QTreeView
这套组合,稳定又灵活,自己定制空间也挺大。
评论区