Как связать / сопоставить глобальные горячие клавиши с помощью Python Tkinter?

Я хочу привязать / сопоставить глобальную горячую клавишу, которая также работает, когда окно приложения свернуто и не сфокусировано на нем. Я ищу кроссплатформенный способ.

Кажется, я должен использовать GUI Toolkit для этого. Я искал для этого с помощью Tkinter, но я не нахожу кроссплатформенный способ.

2 ответа

Решение

С tkinter, если у окна нет фокуса клавиатуры, оно не будет получать события нажатия клавиш, поэтому вы не сможете делать то, что хотите.

Тем не менее, с помощью pynput вы можете прослушивать события нажатия клавиш:

from pynput.keyboard import Listener

def on_press(key):
    print("PRESSED", key)


with Listener(on_press=on_press) as listener:
    listener.join()

Это должно быть кроссплатформенным (но с некоторыми специфическими ограничениями).

Я хочу привязать / сопоставить глобальную горячую клавишу, которая также работает, когда окно приложения свернуто и не сфокусировано на нем. Я ищу кроссплатформенный способ.

Вы не можете сделать это с Tkinter. Tkinter не поддерживает это.

Вы можете попробовать bindglobal

Установить с помощью pip install bindglobal

Имеет тот же API привязки tkinter с полными комбинациями, но работает глобальная поддержка потокобезопасности и основной поток tkinter

Другие вопросы по тегам