Qt designer+PyQt5创建具有复选框的树形列表,实现选中父节点自动选中子节点的功能

8 篇文章 1 订阅

1.首先使用qt designer工具,在画布中添加一个tree widget控件,并给控件添加相应的列和项目,保存该文件。

2.然后在pycharm中将该ui文件使用PyUIC扩展工具将其生成为py文件。

3.在生成的py文件中添加复选框相关代码。

self.treeWidget.topLevelItem(0).child(0).setText(0, _translate("temperatureConvert", "前端S偶1路"))
self.treeWidget.topLevelItem(0).child(0).setCheckState(0,0) #给child(0)的第0列添加一个复选框,默认状态是0(未选中)
self.treeWidget.topLevelItem(0).child(1).setText(0, _translate("temperatureConvert", "前端S偶2路"))
self.treeWidget.topLevelItem(0).child(1).setCheckState(1,0) #给child(1)的第1列添加一个复选框,默认状态是0(未选中)

4.实现父节点选中同时选中子节点功能。

在py文件中的setupUI初始函数中绑定一个槽函数

self.treeWidget.itemChanged.connect(temperatureConvert.checkboxStateChanged)
#其中treeWidget是树的名称,槽函数触发器选择的itemChanged,checkboxStateChanged是槽函数的名称

5.在主界面的py文件中,定义一个checkboxStateChanged函数,内容如下:

    def checkboxStateChanged(self,item,column):#选中树形列表中的父节点,子节点全部选中
        print(item.text(0))
        print(item)
        count = item.childCount()
        if item.checkState(column) == Qt.Checked:
            for f in range(count):
                item.child(f).setCheckState(0, Qt.Checked)
        if item.checkState(column) == Qt.Unchecked:
            for f in range(count):
                item.child(f).setCheckState(0, Qt.Unchecked)
        print(count)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白日梦想家_胖七七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值