Exibir um qmessagebox pyqt quando um item de caixa de listagem /listar diferente é selecionado
Pergunta
Eu tenho uma caixa de combinação cbLayer
e uma função do_stuff
da seguinte forma:
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
Como posso conseguir um QMessageBox
Para aparecer sempre que um item diferente é selecionado na seguinte forma:
QMessageBox.warning(self, "items: ", do_stuff(cb_selected_item))
Solução
Escreva um método ou função que contenha este código e anexe -o ao sinal de combinação de caixas 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))
Eu não tentei isso, mas deveria começar. Caso contrário, dê uma olhada nos exemplos do PYQT.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow