在pyqt的QTreeWidget中,当一个父节点下有多个复选框时,怎么查看点击的是第几个复选框

在pyqt5的QTreeWidget中,当一个父节点下有多个复选框时,怎么查看点击的是第几个复选框并根据勾选状态设置功能,我想要点击不同的复选框在主画布上添加或删除不同的图片

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7601926
  • 你也可以参考下这篇文章:python + pyqt5 QTreeWidget 实现文件资源管理
  • 除此之外, 这篇博客: PyQt5入门(十四)树控件QTreeWidget中的 二.树控件(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_())
    
    

    运行结果:


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^