PyQt获取所有已签入QTreeWidg的列表

2024-05-15 02:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个简单的应用程序来打开一个数据文件夹并绘制该数据。导入数据将更新一个QTreeWidget,该QTreeWidget显示哪些信号可用于绘图。例如:

enter image description here

导入数据后,使用以下命令填充QTreeWidget:

def update_treeWidget(self):
    headers = self.df['voltage recording'].columns[1:]
    sweeps = self.df['voltage recording'].index.levels[0]

    for header in headers:
        parent_item = QtWidgets.QTreeWidgetItem(self.treeWidget)
        parent_item.setCheckState(0, QtCore.Qt.Unchecked)
        parent_item.setText(0, header)

        for sweep in sweeps:
            child_item = QtWidgets.QTreeWidgetItem(parent_item)
            child_item.setCheckState(0, QtCore.Qt.Unchecked)
            child_item.setText(0, sweep)

不过,我不清楚如何检查树中任何项目的已检查状态。

所以我的两个问题是:

  1. 我如何引用该树的任何部分来检查它的选中状态(父级或父级的各个子级)

  2. 有没有办法简单地返回所有选中的框的列表?如果我能找到问题1的答案,我显然可以创建一个函数,每次选中一个框,它都会被添加到列表中(如果未选中,则从列表中删除)。但由于这里的目标只是绘制所有选中的信号,所以对我来说最直接的事情(逻辑上无论如何)是在点击“绘制”按钮时,界面首先检查哪些信号框被选中,然后绘制这些信号。

在所有的例子中,树项似乎都是显式声明的(即item_1,item_2),所以引用它们很简单。但是,由于我是如何填充树的,所以我不知道该怎么做。

如果这首先是填充树的错误方法,请让我知道和/或指向更正确的方法的方向。

谢谢

编辑:

这非常类似于: PyQT QTreeWidget iterating

这就是我的答案。


Tags: 数据selfchilddf列表信号绘制item

热门问题