QTreeVirew 与 QTreeWidget 简单使用
时间: 2024-02-03 13:02:08 浏览: 70
QTreeView 和 QTreeWidget 都是用来展示树形结构的 Qt 控件,它们的使用方式有一些差异。
QTreeWidget 是一个集成了树形结构的 QListView,它采用了 Model/View 设计模式,可以直接通过设置 QTreeWidgetItem 的 parent、child 来构建树形结构。使用 QTreeWidget 时,可以通过 addItem() 方法来添加一项,也可以通过 setHeaderLabels() 方法设置表头,通过 setColumnCount() 方法设置列数,通过 setColumnWidth() 方法设置列宽等。
QTreeView 是一个更为灵活的控件,它采用了 Model/View 设计模式,需要使用 QAbstractItemModel 派生类来实现数据模型。使用 QTreeView 时,需要先创建一个 QStandardItemModel 对象,然后通过 setHeaderData() 方法设置表头,通过 setRowCount()、setColumnCount() 方法设置行数和列数,通过 setItem() 方法设置每个单元格的数据等。
下面是一个简单的使用例子:
使用 QTreeWidget 展示树形结构:
```python
from PyQt5.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
app = QApplication([])
tree = QTreeWidget()
tree.setHeaderLabels(["Title", "Description"])
parent = QTreeWidgetItem(tree)
parent.setText(0, "Parent")
parent.setText(1, "This is a parent item")
child1 = QTreeWidgetItem(parent)
child1.setText(0, "Child 1")
child1.setText(1, "This is a child item")
child2 = QTreeWidgetItem(parent)
child2.setText(0, "Child 2")
child2.setText(1, "This is another child item")
tree.expandAll()
tree.show()
app.exec_()
```
使用 QTreeView 展示树形结构:
```python
from PyQt5.QtWidgets import QApplication, QTreeView, QStandardItemModel, QStandardItem
app = QApplication([])
model = QStandardItemModel()
model.setHorizontalHeaderLabels(["Title", "Description"])
parent = QStandardItem("Parent")
parent.appendRow([QStandardItem("Child 1"), QStandardItem("This is a child item")])
parent.appendRow([QStandardItem("Child 2"), QStandardItem("This is another child item")])
model.appendRow(parent)
tree = QTreeView()
tree.setModel(model)
tree.expandAll()
tree.show()
app.exec_()
```
希望能对你有所帮助。
阅读全文