总体介绍
-
QTreeWidget类提供了一个使用预定义树模型的树视图
-
QTreeWidget类是一个十方方便使用的类,它提供了一个标准的Tree小部件,如下图所示的界面
- 该类基于Qt的Model / View架构,并使用默认模型来保存项目,每一个都是一个 QTreeWidgetItem
- 所以是需要和 QTreeWidgetItem 树节点控件 结合使用的
-
该树可以包含一个标题,其中包含控件中每个列的部分。通过使用 setHeaderLabels()提供字符串列表来设置每个部分的标签是最容易的
- 但是可以使用QTreeWidgetItem构造自定义标头并使用 setHeaderItem() 函数将其插入树中
-
树中的项目可以根据预定义的排序顺序按列排序。如果启用排序,则用户可以通过单击列标题来排序项目
- 可以通过调用 setSortingEnabled() 来启用或禁用排序
- isSortingEnabled() 函数指示是否启用排序
- 小案例
from PyQt5.Qt import *
app = QApplication([])
window = QWidget()
window.resize(320, 450)
window.move(300, 300)
treewidget = QTreeWidget(window)
treewidget.resize(300, 400)
treewidget.move(10, 10)
treewidget.headerItem().setText(0, '列1')
treewidget.headerItem().setText(1, '列2')
treewidget.headerItem().setText(2, '列3')
root = QTreeWidgetItem(treewidget)
root.setText(0, "A测试")
root.setText(1, "B测试")
root.setText(2, 'C测试')
root1 = QTreeWidgetItem(root)
root1.setText(0, "A测试-1")
root1.setText(1, 'A测试-2')
root1.setText(2, 'A测试-3')
root2 = QTreeWidgetItem(root)
root2.setText(0, 'B测试-1')
root2.setText(1, "B测试-2")
root2.setText(2, "B测试-3")
root3 = QTreeWidgetItem(root)
root3.setText(0, 'C测试-1')
root3.setText(1, "C测试-2")
root3.setText(2, "C测试-3")
root.addChild(root1)
root.addChild(root2)
root.addChild(root3)
window.show()
app.exec_()