Как зарегистрировать горячие клавиши глобальной системной клавиатуры в Mac OS X в wxPython / Python 2.7? - PullRequest
0 голосов
/ 25 декабря 2010

Я пишу приложение на основе GUI в Python 2.7 с использованием wxPython 2.8. Я пытаюсь запустить все на Mac, и, к сожалению, похоже, что метод wxPython wx.Window.RegisterHotKey () работает только в Windows. Я хотел бы иметь возможность установить глобальную комбинацию горячих клавиш или комбинаций клавиш во время работы приложения и передать эту комбинацию клавиш самому приложению, даже если оно не имеет фокуса. Как я могу разрешить моему приложению получать уведомления при нажатии (определенной пользователем) глобальной горячей клавиши / комбинации в Mac OS X, даже если приложение не имеет фокуса?

Ответы [ 2 ]

0 голосов
/ 03 января 2011

В настоящее время эта функция недоступна на платформах, отличных от Win32.У меня есть открытый билет для этого на WX-трекере: http://trac.wxwidgets.org/ticket/12354 Вы найдете ссылку на то, как сделать это с помощью Objective C, и вы должны быть в состоянии сделать это с PyObjC, но и WXPython, и обрисованный в общих чертахметод для захвата горячих клавиш в OSX требует запуска в цикле событий в главном потоке.

0 голосов
/ 27 декабря 2010

Когда приложение находится в фокусе, вы сможете использовать таблицу ускорений wxPython:

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.

...