2017-12-08 6 views
1

Ich versuche, den Kindern in einem QTreeViewWidget einige Kontrollkästchen hinzuzufügen, aber sie werden nicht angezeigt.QTreeWidget, wie Sie den Kindern Kontrollkästchen hinzufügen?

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) 

Die TreeViewList füllt, wie es sollte, aber die Checkboxen sind nicht da, irgendwelche Ideen?

Antwort

2

Sie haben einen Wert für die Checkbox zu setzen:

child.setCheckState(0, Qt.Unchecked) 

In Ihrem Fall:

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_()) 
+0

funktioniert perfekt. Ich erwarte, dass PyQt einen Standardwert setzt, aber das ist offensichtlich nicht der Fall. –

Verwandte Themen