在pyqt5的QTreeWidget中,当一个父节点下有多个复选框时,怎么查看点击的是第几个复选框并根据勾选状态设置功能,我想要点击不同的复选框在主画布上添加或删除不同的图片
不知道你这个问题是否已经解决, 如果还没有解决的话:代码:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class BasicTreeWidget(QMainWindow):
def __init__(self,parent=None):
super(BasicTreeWidget, self).__init__(parent)
self.setWindowTitle('树控件(QTreeWidget)的基本用法')
self.resize(500,300)
#树
self.tree=QTreeWidget()
#为树控件指定列数
self.tree.setColumnCount(2)
#指定列标签
self.tree.setHeaderLabels(['Key','Value'])
#根节点
root=QTreeWidgetItem(self.tree)
root.setText(0,'根节点') # 0代表第一列,即Key列
root.setIcon(0,QIcon('../picture/bag/bag1.jpg')) #为节点设置图标
self.tree.setColumnWidth(0,200)#第一列列宽设为200
#添加子节点1
child1=QTreeWidgetItem(root)
child1.setText(0,'子节点1')#第一列Key为 子节点1
child1.setText(1,'子节点1的数据')#第二列Value为 子节点1的数据
child1.setIcon(0,QIcon('../picture/bag/bag2.jpg'))
#设置子节点1开启复选框状态
child1.setCheckState(0,Qt.Checked)
# 添加子节点2
child2=QTreeWidgetItem(root)
child2.setText(0,'子节点2')
child2.setIcon(0,QIcon('../picture/bag/bag3.jpg'))
#为child2添加一个子节点
child3=QTreeWidgetItem(child2)
child3.setText(0,'子节点2-1')
child3.setText(1,'新的值')
child3.setIcon(0,QIcon('../picture/bag/bag4.jpg'))
#默认所有节点都处于展开状态
self.tree.expandAll()
#将树控件设为中心控件,即树控件会自动铺满整个屏幕
self.setCentralWidget(self.tree)
if __name__=='__main__':
app=QApplication(sys.argv)
main=BasicTreeWidget()
main.show()
sys.exit(app.exec_())
运行结果: