我正在尝试创建一个驻留在通知区域或任务栏/系统托盘区域的简单应用程序。我希望它是跨平台的,所以这就是我使用 wxPython 的原因。
该应用程序在 Windows 和 Linux 下运行良好,但在 Macintosh 下,单击 TaskbarIcon 时无法显示主窗口。TaskbarIcon 出现在 Dock 中这一事实并不困扰我。只是我的应用程序没有这个就无法工作。
这是一些可以重现问题的简化代码:
from views import embimgs
import wx
class MyTaskBarIcon(wx.TaskBarIcon):
def __init__(self, app):
wx.TaskBarIcon.__init__(self)
self.app = app
self.Bind(wx.EVT_TASKBAR_LEFT_UP, self.on_left_up)
self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.on_right_up)
def on_left_up(self, evt):
print 'Left upped!'
def on_right_up(self, evt):
print 'Right upped!'
self.app.ExitMainLoop()
def main():
app = wx.PySimpleApp()
mti = MyTaskBarIcon(app)
mti.SetIcon(wx.IconFromBitmap(embimgs.logo64.GetBitmap()))
app.MainLoop()
app.Destroy()
if __name__ == '__main__':
main()
在 Windows 和 Linux 上,左键单击图标会打印“左上角”。右键单击打印“Right upped.”,然后应用程序退出。在 Macintosh 上,左键单击图标除了闪烁图标之外没有任何作用;右键单击打印“Right upped.”,然后应用程序退出。