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)