Comment définir la valeur par défaut de l'élément de l'un QComboBox
Dans ma fonction, j'ai du dictionnaire avec des valeurs vides:
self.items = {
'Maya Executable': '',
'Render': '',
'Mayapy Interpreter': '',
'imgcvt': '',
'IMConvert': '',
}
Comment dois-je mettre "Maya l'Exécutable" (c'est à dire de la 0e), le QComboBox par défaut de l'élément à être sélectionné lors du chargement?
J'ai essayé:
self.appExeCB=QtGui.QComboBox()
self.appExeCB.setCurrentIndex(0)
self.appExeCB.addItems(self.items.keys())
Mais ce n'est pas définie, la valeur par défaut 🙁
OriginalL'auteur | 2012-12-08
Vous devez vous connecter pour publier un commentaire.
Python Dictionnaires ne sont pas commandés. auto.éléments.keys()[0] peut retourner des résultats différents à chaque fois. Pour résoudre votre problème, vous devez ajouter les articles premier et ensuite passer l'indice de "Maya l'Exécutable" de l'auto.éléments.les touches() pour l'auto.appExeCB.setCurrentIndex:
Noter que ce ne sera pas placer les éléments dans le QComboBox dans l'ordre que vous avez déclaré dans l'auto.éléments parce que comme l'a dit avant de Python Dictionnaires ne sont pas commandés.
OriginalL'auteur YusuMishi
Il ya un couple de choses de mal avec votre code.
Tout d'abord, les dictionnaires ont pas d'ordre fixe, de sorte que les touches ne sont pas nécessairement se retrouver dans le même ordre qu'ils ont été insérés dans:
Afin de "Maya l'Exécutable" n'est pas le premier élément de la liste de clés.
Ensuite, vous essayez de définir l'indice actuel avant ajoutant les éléments, quand vous devriez être en paramètre par la suite. Comme il est, le combo-box va juste valeur par défaut à l'affichage du premier élément, qui serait "Mayapy Interprète".
MODIFIER:
Si vous utilisez un OrderedDict, votre exemple de code devrait fonctionner comme prévu:
(NB: Python >= 2.7 est nécessaire pour OrderedDict)
Un dictionnaire est un mapping avec pas de commande fixe. Si vous voulez un ordre fixe, vous pouvez utiliser un OrderedDict.
imagine que je ne peut pas l'utiliser parce que je suis lié à python 2.6
OriginalL'auteur ekhumoro