2015-07-28 3 views
1

Я не буду выполнять действие, если выбрана конкретная запись ComboBox, и ComboBox потеряет фокус.WxPython выполняет действие для определенного выбора ComboBox-Selection

Я знаю, как вызвать обработчик через

self.Bind(wx.EVT_COMBOBOX, self.__HandlerForComboBox, mycombobox) 

но проблема: если пользователь нажимает через ComboBox-выбор с помощью стрелки вверх/стрелка вниз, он будет проходить элемент, и действие будет performend. Поэтому я думал о объединении этого обработчика с чем-то вроде looseFocus (только конкретный ComboBox), и действие будет выполняться только в том случае, если выбран конкретный выбор в ComboBox И пользователь ввел это, щелкнув из ComboBox или нажав на табулятор, чтобы уйти из этой коробки.

Как это сделать?

ответ

1

В вашем HandlerForComboBox просто установите флаг, в котором была выбрана ваша конкретная запись. Нечто подобное должно работать:

if self.cbo.GetValue() == 'special value': 
    self.special_entry = True 
else: 
    self.special_entry = False 

Затем в обработчике события фокуса, вы просто проверить, если self.special_entry истинна и действовать соответствующим образом.

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