2009-08-21 5 views
0

У меня есть выпадающий cbLayer и функция do_stuff следующего вид:дисплей QMessageBox PyQT, когда выбран другой пункт выпадающего/Окно списка

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)) 

ответ

1

Написать метод или функцию, содержащую этот код и прикрепить его к комбо коробки сигнализировать 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.

+0

спасибо за код, вот окончательный результат QObject.connect (self.cbLayer, SIGNAL ("currentIndexChanged (int)"), self.warn \ n def do_stuff (self, item): \ n QMessageBox.warning (self , str (item)) Не могли бы вы изменить ваш код соответствующим образом? – dassouki

+0

Уверен, правильно? –

Смежные вопросы