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 шт):

Автор решения: denisnumb

Можно использовать

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 просто не даст ему работать в основном потоке.

Разумеется, есть более удачные способы реализации, чтобы без отдельного потока.

→ Ссылка