WxPython 为 ComboBox-Selection 的特定选择执行操作
WxPython perform action for a specific choice of ComboBox-Selection
如果选择了 ComboBox 的特定条目并且 ComboBox 失去焦点,我不想执行操作。
我知道如何通过
调用处理程序
self.Bind(wx.EVT_COMBOBOX, self.__HandlerForComboBox, mycombobox)
但问题是:
如果用户通过箭头 up/arrow 向下单击 ComboBox-choices,他将传递元素并且操作将执行结束。所以我考虑将此处理程序与 looseFocus
(仅特定的 ComboBox)之类的东西结合起来,并且只有在选择了 ComboBox 中的特定选项并且用户通过单击 ComboBox 或单击制表符离开这个盒子。
怎么做?
在您的 HandlerForComboBox
中,只需设置一个标志,表明您的特定条目已被选中。这样的事情应该有效:
if self.cbo.GetValue() == 'special value':
self.special_entry = True
else:
self.special_entry = False
然后在您的焦点事件处理程序中,您只需检查 self.special_entry
是否为 True 并据此采取行动。
如果选择了 ComboBox 的特定条目并且 ComboBox 失去焦点,我不想执行操作。
我知道如何通过
调用处理程序 self.Bind(wx.EVT_COMBOBOX, self.__HandlerForComboBox, mycombobox)
但问题是:
如果用户通过箭头 up/arrow 向下单击 ComboBox-choices,他将传递元素并且操作将执行结束。所以我考虑将此处理程序与 looseFocus
(仅特定的 ComboBox)之类的东西结合起来,并且只有在选择了 ComboBox 中的特定选项并且用户通过单击 ComboBox 或单击制表符离开这个盒子。
怎么做?
在您的 HandlerForComboBox
中,只需设置一个标志,表明您的特定条目已被选中。这样的事情应该有效:
if self.cbo.GetValue() == 'special value':
self.special_entry = True
else:
self.special_entry = False
然后在您的焦点事件处理程序中,您只需检查 self.special_entry
是否为 True 并据此采取行动。