如何从QTreeWidget中的输入小部件中检索值?

时间:2019-06-04 15:43:04

标签: python python-3.x pyqt pyqt5 qtreewidget

我有两个QTreeWidget,它们是在Qt Designer中部分创建的,然后在__init__中使用类似的元素添加了元素:

def Top(n):
    return self.ui.tree.topLevelItem(n)
self.ui.tree.setItemWidget(Top(0), 1, self.ui.driver_channel_1_cb)
self.ui.tree.setItemWidget(Top(0), 2, self.ui.driver_channel_2_cb)
self.ui.tree.setItemWidget(Top(1), 1, self.ui.driver_amplitude_1_dsb)
self.ui.tree.setItemWidget(Top(1), 2, self.ui.driver_amplitude_2_dsb)
...

self.ui.driver_channel_1_cb这样的元素是预先在Qt Designer中创建的,只是在树内移动,所以我确实有对其的引用。如何摆脱参考并仅通过知道其位置就能获得其价值?

到目前为止,我已经收集了如何获得整行(一个QTreeWidgetItem),但是我不知道如何访问其列。请查看下面的屏幕截图,尤其是第二棵树。

enter image description here

解决方案

编辑:基于答案there,我将在此处添加我的解决方案,因为我认为对于新来者来说更容易拥有图片。

对于第一棵树,我们可以像这样访问第n个标签和值:

def Top(n): return self.ui.tree.topLevelItem(n)
Label = Top(n).text(0)
Value_C1 = self.ui.tree.itemWidget(Top(n), 1).value() # or .currentText() for combo boxes.
Value_C2 = self.ui.tree.itemWidget(Top(n), 2).value()

对于第二棵树:

Top = self.ui.other_tree.topLevelItem(0)
Label = Top.child(n).text(0)
Value = self.ui.other_tree.itemWidget(Top.child(n), 1).value()

0 个答案:

没有答案