mostrar un QMessageBox PyQt cuando se selecciona un elemento del cuadro de lista desplegable / lista diferente

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

  •  19-09-2019
  •  | 
  •  

Pregunta

Tengo un cbLayer cuadro combinado y una do_stuff función de la siguiente 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

¿Cómo puedo obtener una QMessageBox a aparecer cada vez que un elemento diferente se selecciona de la siguiente forma:

QMessageBox.warning(self, "items: ", do_stuff(cb_selected_item))
¿Fue útil?

Solución

Escribir un método o una función que contiene el código y adjuntarlo a los cuadros combinados señal 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))

no lo probé esto, pero debe empezar. De lo contrario, echar un vistazo a los ejemplos de PyQt.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top