如何在wxPython / Python 2.7中的Mac OS X上注册全局系统键盘热键?

时间:2010-12-25 10:34:52

标签: python macos wxpython wxwidgets

我正在使用wxPython 2.8在Python 2.7中编写基于GUI的应用程序。我试图在Mac上运行所有内容,不幸的是,似乎wxPython的wx.Window.RegisterHotKey()方法仅适用于Windows。我希望能够在应用程序运行时设置全局热键或组合键,并将该组合键传递给应用程序本身,即使它没有焦点。如果在Mac OS X上按下(用户定义的)全局热键/组合,即使应用程序没有焦点,我如何才能通知我的应用程序?

2 个答案:

答案 0 :(得分:0)

当应用程序具有焦点时,您应该能够使用wxPython的AcceleratorTable:

http://www.blog.pythonlibrary.org/2008/07/02/wxpython-working-with-menus-toolbars-and-accelerators/

http://www.blog.pythonlibrary.org/2010/12/02/wxpython-keyboard-shortcuts-accelerators/

我没有Mac,因此您必须尝试询问wxPython邮件列表或wx-mac邮件列表,以获取有关在wx之外注册热键的帮助。

答案 1 :(得分:0)

目前在Win32以外的平台上不可用。我在WX跟踪器上有一张开放票: http://trac.wxwidgets.org/ticket/12354 您将找到如何使用Objective C完成此任务的链接,您应该能够使用PyObjC,但WXPython和用于捕获OSX上的热键的概述方法都需要在主线程中的事件循环中运行。 / p>