Festlegen von Standard-Element einer QComboBox
In meiner Funktion habe ich ein Wörterbuch mit leeren Werten:
self.items = {
'Maya Executable': '',
'Render': '',
'Mayapy Interpreter': '',
'imgcvt': '',
'IMConvert': '',
}
Wie sollte ich "Maya-Executable" (D. H. die 0-Taste), da die QComboBox Standard-Element ausgewählt werden, wenn es lädt?
Habe ich versucht:
self.appExeCB=QtGui.QComboBox()
self.appExeCB.setCurrentIndex(0)
self.appExeCB.addItems(self.items.keys())
Aber dies ist nicht der Standardwert festgelegt 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python Wörterbücher sind nicht bestellt. selbst.Elemente.keys()[0] können unterschiedliche Ergebnisse zurückgeben, jedes mal. Um Ihr problem zu lösen sollten Sie die Artikel zuerst und dann übergeben Sie den index der 'Maya Executable" aus dem selbst.Elemente.keys() selbst auf.appExeCB.setCurrentIndex:
Beachten Sie, dass dies nicht die Elemente in der QComboBox in der Reihenfolge in der Sie deklariert sich selbst.Gegenstände, weil wie gesagt Python Wörterbücher sind nicht bestellt.
Gibt es ein paar Dinge, die falsch mit Ihrem code.
Erstens, Wörterbücher haben keine Feste Reihenfolge, so dass die Tasten nicht unbedingt am Ende in der gleichen Reihenfolge, in der Sie eingefügt wurden, in:
So "Maya Ausführbare" ist das nicht das erste Element in der Liste der Schlüssel.
Zweitens, Sie versuchen, den aktuellen index vor hinzufügen der Elemente, wenn Sie sollten die Einstellung danach. Wie es ist, die combo-box wird nur standardmäßig zeigt das erste Element, die "Mayapy Interpreter".
BEARBEITEN:
Wenn Sie eine OrderedDict, deinem Beispiel-code sollte funktionieren wie erwartet:
(NB: Python >= 2.7 ist erforderlich für OrderedDict)