QTreeWidget如何为孩子添加复选框?

时间:2017-12-08 14:32:25

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

我正在尝试在QTreeViewWidget中为子项添加一些复选框,但它们没有显示。

TreeList = ({
    'Header1': (('Item1', 'Item2', )),
    'Header2': (('Item1', 'Item2', )),
})

tree = QTreeWidget()

for key, value in TreeList.items():
    parent = QTreeWidgetItem(tree, [key])
    for val in value:
        child = QTreeWidgetItem([val])
        child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
        parent.addChild(child)

TreeViewList按原样填充,但复选框不存在,有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您必须为复选框设置一个值:

child.setCheckState(0, Qt.Unchecked)

在你的情况下:

app = QApplication(sys.argv)

TreeList = ({
    'Header1': (('Item1', 'Item2', )),
    'Header2': (('Item1', 'Item2', )),
})

tree = QTreeWidget()

for key, value in TreeList.items():
    parent = QTreeWidgetItem(tree, [key])
    for val in value:
        child = QTreeWidgetItem([val])
        child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
        child.setCheckState(0, Qt.Unchecked)
        parent.addChild(child)
tree.show()

sys.exit(app.exec_())