当我点击Wx.ListCtrl中的一行时,除非按下DELETE,否则我不想发生任何事情。问题是,我不知道如何使事件处理程序激活另一个。
到目前为止,这是我的代码:
self.list.Bind(wx.EVT_LIST_ITEM_SELECTED, ...)
self.list.Bind(wx.EVT_KEY_DOWN, self.onSelect)
def onSelect(self, event):
keycode = event.GetKeyCode()
if keycode == wx.WXK_DELETE:
print "You pressed delete."
event.Skip()
我想以某种方式使第一个事件处理程序激活/等待第二个事件处理程序变为真(有人按下删除)。然后该功能运行并打印“你按下删除。”
如果无法做到这一点,还有其他任何关于如何做到这一点的想法?
答案 0 :(得分:1)
当列表项选择事件触发时,获取该事件处理程序以将变量can_delete设置为True或False(如果未选择任何项)。 在键事件处理程序中,当按下delete时,还要检查can_delete是否为真。
或者
按下删除时,检查列表控件是否具有焦点并选择了一个项目。