我正在构建一个简单的应用程序,用于打开数据文件夹并绘制其中的数据。导入数据会更新一个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的答案,我显然可以创建一个函数,在每次选中框时将其添加到列表中(如果取消选中,则从列表中删除)。但由于这里的目标仅是绘制所有已选信号,所以最直接的方法(逻辑上)是在点击“绘图”按钮时,界面首先检查哪些信号框被选中,然后绘制这些信号。
在所有示例中,树项都是明确声明的(即item_1、item_2),因此引用它们很简单。但由于我正在填充树的方式,我不明白如何做到这一点。
如果这是首先填充树的不正确方法,请告诉我并/或指向更正确的方法。
谢谢
编辑:
这与以下内容非常相似: PyQT QTreeWidget 迭代 这是我回答的基础。