pyqt5 treeWidget入门,多级子项,选中父项,子项也全部选中

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

目录

1. 成品

2. QTreeWidget类和QTreeWidgetItem类

3.代码实现


 

 


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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值