visualizzare un QMessageBox PyQT quando si seleziona un diverso elemento della casella combobox / lista
Domanda
Ho un cbLayer
casella combinata e una funzione do_stuff
della forma seguente:
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
Come posso ottenere un QMessageBox
a pop-up ogni volta che un elemento diverso è selezionato nella forma seguente:
QMessageBox.warning(self, "items: ", do_stuff(cb_selected_item))
Soluzione
Scrivi un metodo o una funzione che contiene questo codice e allegarlo alle caselle combinate segnalare 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))
non ho provato questo ma dovrebbe iniziare. In caso contrario, dare un'occhiata agli esempi PyQt.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow