Im 使用 tkinter 和 pynput。我有一个按钮可以在用户按下键后选择触发键我想在标签中显示按下键的顺序,这是错误:ord() expected string of length 1, but KeyCode found
这是代码:
TriggerKey = Button(win, text = "Set a trigger key", command = Key_listener)
TriggerKey.place(x = 70, y = 70,)
这是侦听函数:
def Key_listener():
with Listener (on_press=trigger_Key, on_release=release) as trigger:
trigger.join()
这就是我认为问题所在:
def trigger_Key(Key):
TriggerKey = Key
print(TriggerKey) #prints the pressed button for a test
ord_key = ord(TriggerKey)
trigger_key_label.config(text= ord_key)
如果你把它和tkinter
一起使用,它会阻止你的代码。 更改函数Key_listener
:
def Key_listener():
trigger = Listener (on_press=trigger_Key, on_release=release)
trigger.start()
关于您的错误: 在trigger_Key
中,key是一个Keycode
函数。您需要使用ord(Key.char)
.