将应用程序最小化到任务栏时,Keydown事件不起作用

时间:2019-07-12 23:03:49

标签: python wxpython keydown system-tray trayicon

我有一个非常简单的应用程序,其任务是在用户按下键后启动另一个子进程。但是,这有点复杂,因为必须将系统托盘中的应用程序最小化。除非将应用程序最小化到任务栏图标,否则所有操作均正常。 wx.EVT_KEY_DOWN刚刚停止工作。因为我对Python特别是OOP还是很陌生,所以我怀疑自己做错了什么。请告知如何解决此问题。

这是Windows应用程序,不需要支持其他系统。我尝试了Pynput的键盘侦听器,但它在多线程处理方面造成了更多问题。我宁愿避免使用它。

class MyForm(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Title")

        panel = wx.Panel(self, wx.ID_ANY)
        self.tbIcon = custTray.CustomTaskBarIcon(self)
        self.Bind(wx.EVT_ICONIZE, self.onMinimize)
        self.Bind(wx.EVT_CLOSE, self.onClose)
        panel.Bind(wx.EVT_KEY_DOWN, self.onKeyPress)
        self.text = wx.StaticText(panel, 0, "Please wait.....")
        self.timer = wx.Timer(self)

    def onKeyPress(self, event):
        pass

结果是事件wx.EVT_KEY_DOWN仅在未最小化表单时起作用。一旦将其最小化,事件将停止工作。我希望它们在最小化应用程序时也能正常工作

0 个答案:

没有答案