2015-08-24 1 views
1

Je suis novice en GUI et j'essaie de faire en sorte que le choix de l'utilisateur dans une combobox change le résultat de mon programme.Comment utiliser une sélection QCombobox dans une boucle if?

Voici mon Combobox:

self.popupItems1 = ("Option 1","Option 2") 
self.popup1 = QtGui.QComboBox(self) 
self.popup1.addItems(self.popupItems1) 
self.popup1.setCurrentIndex(self.popupItems1.index("Option 1")) 
self.popup1.move(10, 220) 

Je l'ai fait beaucoup de recherche, mais je ne peux pas sembler comprendre cela, je suppose que je devrais utiliser quelque chose comme ça?

if self.popupItems1 == 'Option 1': 
    do_something() 
else: 
    do_something_else() 

Merci d'avance pour toute aide!

+0

Si vous avez besoin du programme pour faire quelque chose juste après que l'utilisateur ait choisi un choix dans une zone de liste déroulante, vous devez utiliser le signal et les emplacements. Si vous voulez traiter le choix plus tard, comme lorsque l'utilisateur clique sur un bouton "ok", la réponse ci-dessous fonctionnera. – Mel

Répondre

1

Pour obtenir le texte actuellement sélectionné dans un QComboBox, utilisez la méthode currentText(), et si vous voulez obtenir l'index, utilisez la méthode currentIndex().

Par exemple, si votre QComboBox est référencé par self.popup1 puis pour obtenir l'utilisation de texte sélectionné:

text = self.popup1.currentText() 

Vous pouvez également obtenir l'index en utilisant l'autre méthode.

Ce que vous cherchez peut-être ceci:

if self.popup1.currentIndex() == 0 : # The first option 
    do_something() 
else : # Any other option 
    do_something_else() 

Pour plus d'informations vérifier the documentation of QComboBox.