afficher un PyQT QMessageBox quand un autre élément de la boîte liste déroulante / de liste est sélectionné

StackOverflow https://stackoverflow.com/questions/1312598

  •  19-09-2019
  •  | 
  •  

Question

J'ai une zone de liste déroulante cbLayer et une do_stuff fonction de la forme suivante:

def do_stuff(item_selected_from_cbLayer):
    new_list = []
    # do stuff based on item_selected_from_combobox and put the items in new_list
    return new_list

Comment puis-je obtenir un QMessageBox pour faire apparaître chaque fois qu'un élément est sélectionné sous la forme suivante:

QMessageBox.warning(self, "items: ", do_stuff(cb_selected_item))
Était-ce utile?

La solution

Ecrire une méthode ou une fonction qui contient ce code et l'attacher aux zones de liste déroulante signaler currentIndexChanged :

def __init__(self):
    ...
    QObject.connect(self.cbLayer, SIGNAL("currentIndexChanged(int)"), self.warn)

def warn(index):
    QMessageBox.warning(self, "items: ", do_stuff(cbLayer.itemData(index)) )

def do_stuff(self, item):
    QMessageBox.warning(self, str(item))

Je n'ai pas essayé cela, mais il devrait vous aider à démarrer. Sinon, jetez un oeil sur les exemples PyQt.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top