Ich habe ein QTreeWidget mit zwei Ebenen. Elternebene ist die erste und untergeordnete Ebene darunter. Ich möchte, dass die übergeordnete Ebene Kontrollkästchen enthält, aber ich möchte, dass die untergeordneten Elemente keine Kontrollkästchen haben. Im folgenden Beispiel zeigt jedes QTreeWidgetItem ein Ankreuzfeld an. Wenn ich "child.setCheckState (0, Qt.Unchecked)" entferne, verschwinden alle Kontrollkästchen, nicht nur die untergeordneten Kontrollkästchen.QTreeWidgetItem ausblenden untergeordnete Kontrollkästchen, aber nicht übergeordnete Kontrollkästchen
Wie kann ich die untergeordneten Kontrollkästchen, nicht aber die übergeordneten Kontrollkästchen, ausblenden?
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()
Guter Fang. Mein Beispielcode stimmt nicht mit meinem echten Code überein. Ich habe Ihren Vorschlag und den Vorschlag von m7913d meinem obigen Beispiel hinzugefügt. Leider ist das untergeordnete Kontrollkästchen immer noch sichtbar. – panofish
haben Sie den Code "child.setCheckState (0, Qt.Unchecked)" vollständig entfernt – Naidu
Ich sehe immer noch "child.setCheckState (0, Qt.Unchecked)" in Ihrem Code. Bitte entfernen Sie es vollständig – Naidu