栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PyQt5之TreeWidget树形控件的使用(二)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PyQt5之TreeWidget树形控件的使用(二)

TreeWidget 详解
  • 一、TreeWidget定义
  • 二、类的常用方法及说明
    • 1.QTreeWidget类
    • 2.QTreeWidgetItem类
  • 三、创建TreeWidget控件


一、TreeWidget定义

TreeWidget树控件对应 PyQt5 中的QTreeWidget类,即,在Qt中,我们可以通过QTreeWidget类构造树形结构。QTreeWidget以树的形式显示各个项,每个树节点(项)使用QTreeWidgetItem来表示,是界面编程中的一个重要控件。本文对有关QTreeWidget的基本知识点进行了总结。。

二、类的常用方法及说明 1.QTreeWidget类
方法说明
addTopLevelItem()添加顶级节点
insertTopLevelItems()在树的顶层索引中插入节点
setColumnCount()设置树结构中的列数
setColumnWidth()设置列的宽度
2.QTreeWidgetItem类
方法说明
setText()设置节点文本
text()获取节点文本
setIcon()设置节点图标
setHeaderLabels()设置列标题名
三、创建TreeWidget控件

树形结构实现
通过向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)

程序运行效果


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011588.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号