【发布时间】:2017-03-31 15:56:17
【问题描述】:
我有一个有两个级别的 QTreeWidget。父级是第一级,子级在下面。我希望父级别包含复选框,但我希望孩子没有复选框。在以下示例中,每个 QTreeWidgetItem 都显示一个复选框。如果我删除“child.setCheckState(0, Qt.Unchecked)”,那么所有复选框都会消失,而不仅仅是子复选框。
如何隐藏子复选框,而不是父复选框?
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
def main():
app = QApplication (sys.argv)
tree = QTreeWidget ()
headerItem = QTreeWidgetItem()
item = QTreeWidgetItem()
for i in xrange(2):
parent = QTreeWidgetItem(tree)
parent.setText(0, "Parent {}".format(i))
parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
parent.setExpanded(True)
parent.setCheckState(0, Qt.Unchecked)
for x in xrange(3):
child = QTreeWidgetItem(parent)
child.setFlags(child.flags() & ~(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable))
child.setText(0, "Child {}".format(x))
#child.setCheckState(0, Qt.Unchecked)
tree.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
【问题讨论】:
标签: python qt pyqt4 qtreewidget qtreewidgetitem