欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-05-25

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)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。