0
Код ниже - это упрощенная версия класса значков панели задач, я не проверил значение GetKeyCode()
, чтобы увидеть, является ли это ctrl, поскольку ключевые события для прессы не являются уволена. Должен ли я быть обязательным нажатием клавиш в другом месте?обнаружение ctrl-click на меню панели задач
class TBI(wx.TaskBarIcon):
TBMENU_CTRLCLICK= wx.NewId()
def __init__(self,frame):
wx.TaskBarIcon.__init__(self)
self.frame=frame
self.ctrl_down=False
self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
self.Bind(wx.EVT_KEY_UP, self.OnKeyUp)
self.Bind(wx.EVT_MENU, self.OnCtrlClick, id=self.TBMENU_CTRLCLICK)
def CreatePopupMenu(self):
menu= wx.Menu()
if self.ctrl_down:
menu.Append(self.TBMENU_CTRLCLICK, "Ctrl Click")
menu.AppendSeparator()
menu.Append(wx.ID_EXIT, "Exit")
return menu
def OnKeyDown(self,event):
self.ctrl_down=True
event.Skip()
def OnKeyUp(self,event):
self.ctrl_down=False
event.Skip()