pyqt treeview显示文件路径,并在路径前添加复选框
时间: 2023-07-04 21:16:36 浏览: 257
QT实现的treeView有复选框
可以使用QFileSystemModel来实现在TreeView中显示文件路径,并在路径前添加复选框的功能。下面是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QFileSystemModel, QTreeView
from PyQt5.QtCore import Qt
app = QApplication([])
# 创建QFileSystemModel对象
model = QFileSystemModel()
# 设置显示路径
model.setRootPath("/")
# 隐藏根目录
treeview = QTreeView()
treeview.setRootIsDecorated(False)
treeview.setAlternatingRowColors(True)
treeview.setModel(model)
# 隐藏列标题
treeview.header().hide()
# 设置复选框
treeview.setEditTriggers(QTreeView.NoEditTriggers)
treeview.setSelectionMode(QTreeView.ExtendedSelection)
treeview.setAllColumnsShowFocus(True)
treeview.setSortingEnabled(True)
treeview.setAnimated(True)
treeview.setIndentation(20)
# 添加复选框
treeview.setColumnCount(2)
treeview.headerItem().setText(0, "Name")
treeview.headerItem().setText(1, "Path")
for i in range(model.columnCount()):
treeview.header().setSectionResizeMode(i, QHeaderView.Stretch)
for i in range(model.rowCount()):
index = model.index(i, 0)
path = model.filePath(index)
item = QStandardItem(model.fileName(index))
item.setCheckable(True)
item.setData(path, Qt.UserRole)
item.setData(path, Qt.UserRole + 1)
item.setToolTip(path)
item.setTristate(True)
treeview.setIndexWidget(model.index(i, 1), item)
treeview.show()
app.exec_()
```
这段代码会显示一个TreeView,其中每一个文件夹和文件都会有一个复选框以及它的路径。你可以根据自己的需求修改这个示例代码。
阅读全文