【发布时间】:2015-01-13 20:08:36
【问题描述】:
我正在构建一个简单的应用程序来打开一个数据文件夹并绘制该数据。导入数据会更新一个 QTreeWidget,它显示哪些信号可用于绘制。例如:
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 的答案,我显然可以创建一个函数,每次选中一个框时,它都会添加到列表中(如果未选中,则从该列表中删除)。但是由于这里的目标只是绘制所有检查的信号,对我来说最直接的事情(无论如何逻辑上)是在点击“Plot”按钮时,界面首先检查哪些信号框被选中,然后绘制这些信号。
在所有示例中,我似乎都明确声明了树项(即 item_1、item_2),因此引用它们很简单。但是,由于我如何填充树,我不明白该怎么做。
如果首先填充树的方法不正确,请告诉我和/或指出更正确方法的方向。
谢谢
编辑:
这非常类似于: PyQT QTreeWidget iterating
这是我回答的依据。
【问题讨论】:
标签: python pyqt qtreewidget qt-signals