- 一、TreeWidget定义
- 二、类的常用方法及说明
- 1.QTreeWidget类
- 2.QTreeWidgetItem类
- 三、创建TreeWidget控件
一、TreeWidget定义
TreeWidget树控件对应 PyQt5 中的QTreeWidget类,即,在Qt中,我们可以通过QTreeWidget类构造树形结构。QTreeWidget以树的形式显示各个项,每个树节点(项)使用QTreeWidgetItem来表示,是界面编程中的一个重要控件。本文对有关QTreeWidget的基本知识点进行了总结。。
二、类的常用方法及说明 1.QTreeWidget类| 方法 | 说明 |
|---|---|
| addTopLevelItem() | 添加顶级节点 |
| insertTopLevelItems() | 在树的顶层索引中插入节点 |
| setColumnCount() | 设置树结构中的列数 |
| setColumnWidth() | 设置列的宽度 |
| 方法 | 说明 |
|---|---|
| setText() | 设置节点文本 |
| text() | 获取节点文本 |
| setIcon() | 设置节点图标 |
| setHeaderLabels() | 设置列标题名 |
树形结构实现
通过向QTreeWidget添加顶层节点,顶层节点添加子节点,依次这样添加节点的方式构造树形结构。
相关代码片(示例如下):
self.treeWidget.setColumnCount(2) #设置树结构中的列数
self.treeWidget.setHeaderLabels(["成员", "职责"]) #设置列标题名
self.treeWidget.setColumnWidth(0,150)
self.treeWidget.setColumnWidth(1,280)
root = QTreeWidgetItem(self.treeWidget) #创建节点
root.setText(0, "班委成员(顶级节点)") #设置顶级节点文本
dict = {'班长':' 日常工作开展的总协调人',
'副班长':' 协助班长开展工作',
'学习委员':' 负责开展班级学习工作',
'纪律委员':' 负责开展班级纪律检查工作',
'劳动委员':' 负责班级卫生和劳动工作'}
for key, value in dict.items(): #遍历字典
child = QTreeWidgetItem(root) #创建子节点
child.setText(0, key) #设置第一列的值
child.setText(1, value) #设置第二列的值
self.treeWidget.setAlternatingRowColors(True)
self.treeWidget.addTopLevelItem(root) #将创建的树节点添加到树控件中
程序运行效果
添加图标
在上面的代码基础上添加这条语句,可以为树形节点添加图标:
item.setIcon(1, QtGui.QIcon('images/*.jpg'))
...
程序运行效果
添加复选框
向树形结构添加checkBox:
item.setCheckState(0, QtCore.Qt.Unchecked) ...
程序运行效果
信号连接自定义槽函数
鼠标双击TreeWidgetItem,QTreeWidget发出双击信号,自定义的Ui_MainWindow类接收后,调用自定义的槽函数。那么connect函数为:
self.treeWidget.clicked.connect(self.gettext)
def gettext(self,currentItem):
from PyQt5.QtWidgets import QMessageBox
QMessageBox.information(MainWindow, "提示", "选中的是"+self.treeWidget.currentItem().text(0)+"该成员职能是"+self.treeWidget.currentItem().text(1), QMessageBox.Ok)
程序运行效果



