Qt treewidget python;迭代列

时间:2016-03-09 21:52:16

标签: python pyqt pyqt4 qtreewidget

在PyQt4中给出一个带有一些行和列的树小部件:

1)有没有办法轻松迭代所有细胞?

2)如何检查是否在第一列之外选中了复选框?

到目前为止,我只是设法获得第一列中复选框的结果,请参阅here

为了澄清这里的小部件我的想象如下:(第四列应该是可编辑的)

widget structure

family="Georgia"

1 个答案:

答案 0 :(得分:1)

迭代树窗口小部件的一种方法是使用QTreeWidgetItemIterator

def iter_tree_widget(root):
    iterator = QtGui.QTreeWidgetItemIterator(root)
    while True:
        item = iterator.value()
        if item is not None:
            yield item
            iterator += 1
        else:
            break

root参数可以是树小部件(迭代整个树),也可以是树小部件项(迭代单个分支)。

迭代器每行产生一个项目,只需指定列索引即可访问此项目的列:

column = 0
for item in iter_tree_widget(tree):
    print('State: %s, Text: "%s"' % (
          item.checkState(column), item.text(column)))