zeigt eine QMessageBox PyQT, wenn ein anderes Combobox / Listenfeld Element ausgewählt ist

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

  •  19-09-2019
  •  | 
  •  

Frage

Ich habe ein Kombinationsfeld cbLayer und eine Funktion do_stuff der folgenden Form:

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

Wie kann ich ein QMessageBox Pop-up, wenn ein anderes Element in der folgenden Form gewählt wird:

QMessageBox.warning(self, "items: ", do_stuff(cb_selected_item))
War es hilfreich?

Lösung

Schreiben Sie eine Methode oder Funktion, die diesen Code enthält, und schließen Sie es an den Kombinationsfeldern signalisieren 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))

Ich habe nicht versucht, aber es sollte Ihnen den Einstieg. Sonst habe einen Blick auf die PyQt Beispiele.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top