отображать QMessageBox PyQt, когда выбран другой элемент combobox / list box
Вопрос
У меня есть поле со списком cbLayer
и функция do_stuff
следующего вида:
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
Как я могу получить QMessageBox
всплывать всякий раз, когда выбирается другой элемент в следующей форме:
QMessageBox.warning(self, "items: ", do_stuff(cb_selected_item))
Решение
Напишите метод или функцию, содержащую этот код, и присоедините его к сигналу полей со списком 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))
Я этого не пробовал, но это должно помочь вам начать.В противном случае взгляните на примеры PyQt.
Не связан с StackOverflow