目录
2. QTreeWidget类和QTreeWidgetItem类
1. 成品
最近在做项目过程中用到了QTreeWidget,就这里记录下,主要是实现了QTreeWidget树形展开,并且选择父项,子项也可以全部选中。
大概就是下面图片展示的这样:

2. QTreeWidget类和QTreeWidgetItem类
树形结构是通过QTreeWidget 和QTreeWidgetItem 类实现的,QTreeWidgetItem 负责添加节点。
1.QTreeWidget类中的常用方法:
| 方 法 | 描 述 |
|---|---|
| setColumnWidth(int column, int width) | 将指定列的宽度设置为给定的值 Column , 指定的列 Width,指定列的宽度 |
| insertTopLevelItems() | 在视图的顶层索引中插入项目列表 |
| expandAll() | 展开所有的树形节点 |
| invisibleRootItem() | 返回树形控件中不可见的根选项(Root Item) |
| selectedItems() | 返回所有选定的非隐藏项目列表 |
2.QTreeWidgetItem类中的常用方法:
| 方 法 | 描 述 |
| addChild() | 将子项追加到子列表中 |
| setText() | 设置显示的节点文本 |
| Text() | 返回显示的节点文本 |
| setCheckState(column, state) | 设置指定列的选中状态: QT.Checked, 节点选中 QT.Unchecked,节点未选中 |
| setIcon(column, icon) | 在指定的列表中显示图标 |
3.代码实现
我用的工具是pycharm来编写代码,并且用到了他的插件QT Designer,用QT Designer编写UI是很方便的。
首先这里有几点说明:
1. 如果子项特别多,建议用字典+固定数字(c语言中的宏)的方式来管理你的列表;
我在coding的过程中,先将所有父项和子项归类到一个字典,并对每个项做了编号,我觉得这点很重要,在对项目的管理上,特别是对于那些特别多子项的。比如我这个为国家电网测试编写的代码,测试项目特别多,如下:
# 对每个项进行编号,之所以不连续是为了以后预留
class AllCertCaseValue:
ROOT_PROTOCON = 0
# STA 协议一致性所有case
ROOT_PROTOCON_STA_CHILD = 1
# sta scan tmi band0/1/2/3
ROOT_PROTOCON_STA_TMISCAN_B0 = 2
ROOT_PROTOCON_STA_TMISCAN_B1 = 3
ROOT_PROTOCON_STA_TMISCAN_B2 = 4
ROOT_PROTOCON_STA_TMISCAN_B3 = 5
# sta tonemask band0/1/2/3
ROOT_PROTOCON_STA_TM_B0 = 6
ROOT_PROTOCON_STA_TM_B1 = 7
ROOT_PROTOCON_STA_TM_B2 = 8
ROOT_PROTOCON_STA_TM_B3 = 9
ROOT_PROTOCON_STA_MAX = ROOT_PROTOCON_STA_TM_B3 + 1
# CCO 协议一致性所有case
ROOT_PROTOCON_CCO_CHILD = 40
# cco scan tmi band0/1/2/3
ROOT_PROTOCON_CCO_TMISCAN_B0 = 41
ROOT_PROTOCON_CCO_TMISCAN_B1 = 42
ROOT_PROTOCON_CCO_TMISCAN_B2 = 43
ROOT_PROTOCON_CCO_TMISCAN_B3 = 44
# sta tonemask band0/1/2/3
ROOT_PROTOCON_CCO_TM_B0 = 45
ROOT_PROTOCON_CCO_TM_B1 = 46
ROOT_PROTOCON_CCO_TM_B2 = 47
ROOT_PROTOCON_CCO_TM_B3 = 48
ROOT_PROTOCON_CCO_MAX = ROOT_PROTOCON_CCO_TM_B3 + 1
# 通信性能测试
ROOT_PERFORMANCE_C

本文详细介绍如何使用QTreeWidget和QTreeWidgetItem类创建复杂的树形结构,包括代码实现和具体示例,适用于项目管理和测试用例组织。
1307

被折叠的 条评论
为什么被折叠?



