Exibir um qmessagebox pyqt quando um item de caixa de listagem /listar diferente é selecionado

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

  •  19-09-2019
  •  | 
  •  

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))
Foi útil?

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
scroll top