Python keyboard.add_hotkey(): как создать допущение в бинде?
Работаю с библиотекой keyboard. В программе нужно забиньдить клавишу space + любое сочетание. Долго искал информацию на это тему так и не нашел. Может кто-то знает решения?
from tkinter import *
import keyboard
def stuff():
keyboard.send("space")
root = Tk()
root.resizable(width=False, height=False)
root.geometry('300x400')
keyboard.add_hotkey('space', stuff)
root.mainloop()
Ответы (1 шт):
Можно использовать
key = keyboard.read_hotkey()
после чего сохранить сочетание как
keyboard.add_hotkey(f'space+{key}', stuff)
Или можно сразу нажать 2 (или больше) кнопки, тогда в key будет записано 'key+key2', где key1, key2 и т.д. - нажатые кнопки
Если вам нужно вообще любое сочетание, то можно попробовать так:
import keyboard
from threading import Thread
def check_hotkey():
while True:
if keyboard.is_pressed('space') and len(keyboard._pressed_events) > 1:
print('Нажато сочетание клавиш с пробелом')
Thread(target = check_hotkey).start()
Здесь мы проверяем, чтобы был нажат пробел, и при этом кол-во нажатых клавиш было больше 1. Запуск в отдельном потоке, так как у вас вроде бы графический интерфейс, а while True просто не даст ему работать в основном потоке.
Разумеется, есть более удачные способы реализации, чтобы без отдельного потока.