我試圖創建一個簡單的應用程序駐留在通知區域或任務欄/系統托盤區域。我希望它是跨平臺的,所以這就是我使用wxPython的原因。Macintosh wxPython EVT_TASKBAR_LEFT_UP或替代
該應用程序在Windows和Linux下運行良好,但在Macintosh下,單擊TaskbarIcon時無法顯示主窗口。我不擔心TaskbarIcon出現在碼頭中。沒有這個,我的應用程序就無法正常工作。
下面是一些簡單的代碼,可以重現該問題:
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',然後應用程序退出。
這適用於碼頭中的圖標,但這不是「TaskBarIcon」。如果你在OSX下創建一個TaskBarIcon,它會出現在頂部的菜單欄中,這個解決方案不會幫助從那裏獲取事件:( – GreenAsJade
是的,對於頂部菜單欄上實際的*系統托盤*圖標,看起來似乎在* unstable *(當時是2.9x)版本的** wxPython **中實現的功能,可以在新的穩定版本3.x中實現,我需要重新檢查。 –
我在3。 x的wxPython(2.7 Python)問題仍然存在。 – GreenAsJade