не могу понять, как сделать правильно функцию для отлавливания сочетаний клавиш
Есть такой код:
def hotkey(widget):
key = keyboard.read_key()
modificator = ["shift", "ctrl", "alt"]
if keyboard.is_pressed(modificator[0]):
modkey = keyboard.read_key()
key = modificator[0] + " + " + modkey
elif keyboard.is_pressed(modificator[1]):
modkey = keyboard.read_key()
key = modificator[1] + " + " + modkey
elif keyboard.is_pressed(modificator[2]):
modkey = keyboard.read_key()
key = modificator[2] + " + " + modkey
widget.value = key.title()
widget.update()
print(key)
Ну и, собственно, он не работает корректно. С текущим вариантом необходимо очень быстро нажать на другую клавишу после зажатия модификатора, иначе он просто выдаст, к примеру, "shift + shift", а мне нужно, что бы программа ждала сколько угодно времени, пока не нажмут вторую клавишу. И вторая проблема: при единоразовом кратковременном нажатии на тот же шифт выдает "shift + shift".
Источник: Stack Overflow на русском