Я хочу сделать быстрые клавиши, такие как t, которые будут работать, когда главное окно будет закрыто (но процесс запущен, так как программа имеет единицу appindicator). Я видел пакет keybinder, но, похоже, его нельзя использовать с Gtk3 и pygobject. Или может? Тогда как? Если нет, есть ли другой способ сделать это? Приложение для linux (ubuntu), я использую python 2.7.Как сделать глобальные быстрые клавиши с помощью python (и Gtk3)?
ответ
Keybinder отлично работает с python3, Gtk3 и pygi. В исходном дереве просто не было рабочего примера.
#!/usr/bin/env python3
"""
example-gi-py3.py
Looked at a pull request that was built for py2.x, but
overwrote the original py instead of making a separate example.
I wouldn't have accepted that pull request either.
The keybinder.init() part wasn't in the original example.
[email protected]
public domain
"""
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Keybinder', '3.0')
from gi.repository import Gtk
from gi.repository import Keybinder
def callback(keystr, user_data):
print ("Handling", user_data)
print ("Event time:", Keybinder.get_current_event_time())
Gtk.main_quit()
if __name__ == '__main__':
keystr = "<Ctrl><Alt>M"
Keybinder.init()
Keybinder.bind(keystr, callback, "keystring %s (user data)" % keystr)
print ("Press", keystr, "to handle keybinding and quit")
Gtk.main()
Примечания: Не тщательно протестированы, но в качестве простого примера, кажется, работает.
Добавленное примечание, я вложил запрос на перенос на github с этим примером, который не шел по исходному примеру. Может быть, это затянется. – RobotHumans
Я использую также Keybinder активировать поле ввода поиска в приложении GTK3:
from gi.repository import Keybinder
…
class MyApp:
…
Keybinder.init()
Keybinder.bind("<Ctrl>F", self.set_search_entry_focus)
…
def set_search_entry_focus(self, keystring):
self.search_entry.grab_focus()
http://lazka.github.io/pgi-docs/Keybinder-3.0/
Но знайте, это будет также перехватывать фокус, если если вы используете другое приложение и приложение работает в фоновом режиме.
- 1. Как сделать быстрые клавиши в .NET
- 2. Быстрые клавиши с клавиатурой
- 3. быстрые клавиши monodevelop и автокод
- 4. Быстрые клавиши Visual Studio
- 5. Быстрые клавиши для веб-браузеров
- 6. Как сделать быстрые клавиши Aptana для компоновки независимыми?
- 7. Как сделать лучшие и быстрые настенные часы с помощью качелей?
- 8. Как изменить быстрые клавиши быстрого доступа MacOS/горячие клавиши?
- 9. Пользовательские Eclipse, быстрые клавиши Просмотры
- 10. переопределить быстрые клавиши в браузере
- 11. Отключить быстрые клавиши в GTKTreeView
- 12. Выполнить быстрые клавиши, например, программы
- 13. Использование shadowbox отключает быстрые клавиши?
- 14. Быстрые клавиши быстрого запуска Windows
- 15. глобальные горячие клавиши в C#
- 16. Как удалить быстрые клавиши в tinyMCE 4?
- 17. Как сбросить все быстрые клавиши в блокноте ++?
- 18. Как программировать быстрые клавиши для Android
- 19. Как переназначить быстрые клавиши Windows на C#?
- 20. Как сделать окно GTK3 + с фоновым изображением
- 21. Глобальные горячие клавиши в Mono
- 22. быстрые клавиши для удаленной программы Xwindows
- 23. Как запустить короткие клавиши с помощью Python?
- 24. Есть ли у ошибок Insight быстрые клавиши?
- 25. C++/Qt Глобальные горячие клавиши
- 26. Python GTK3: как создать Gtk.FileChooseDialog?
- 27. Установить глобальные горячие клавиши с Windows, модификатором
- 28. Глобальные горячие клавиши для WindowsFormApplications
- 29. GdkPixbuf.PixbufDestroyNotify - NotImplementedError - python gtk3
- 30. Настраиваемые глобальные горячие клавиши клавиатуры
добавлено примечание, оно отлично работает и для 2.7, я просто не хочу загромождать свой диск. я держу 2,7 довольно нетронутыми и делаю все, что стоит делать на py3k. – RobotHumans