не могу понять, как работает метод read_hotkey() в библиотеке keyboard
В доках написано, что он просто возвращает название нажатых клавиш, но ничего про то, что он где-то сохраняет результат прошлого вызова.
Когда я вызываю метод второй и последующие разы, при нажатии клавиши/клавиш он возвращает и названия из прошлого вызова
Вот функция, декоратор и вызов:
def hotkey(widget, section, option):
key = keyboard.read_hotkey()
widget.value = key.upper()
widget.update()
print(key)
if key in keys:
config.set(section, option, keys[key])
with open(path, "w") as config_file:
config.write(config_file)
def htk_decorator(func):
def wrapper(*args):
key = ""
page.dialog = dlg
dlg.open = True
page.update()
config.hotkey(*args)
key = "uu"
dlg_tx.value = key
dlg.update()
dlg.open = False
page.update()
dlg_tx.value = ""
return wrapper
hotkey = htk_decorator(config.hotkey)
tabs.htk_skillslot1.on_click = lambda _: hotkey(tabs.tx_skillslot1, "HOTKEYS", "SkillSlot1")
Получается вот так:
Каждый раз я жму по одной клавише.
Источник: Stack Overflow на русском