【发布时间】:2019-09-22 14:41:00
【问题描述】:
我正在尝试制作一个输入框,当它获得焦点时获取键盘输入,并且只在框的中间显示该键名,没有闪烁的条并且不允许编辑。并且还将变量更改为键。
所以如果[ ] 是一个输入框。我输入F7,然后框应该显示[ F7 ],然后当我按下退格按钮时,框应该显示[ Backspace ]。
在我的代码中,像F1、F2 等特殊键甚至都没有给我正确的反馈,因为所有功能键都给我'',退格键给我'\x08'。如果所有键都显示不同的字符,我想我可以找到一种方法来链接字符和要打印的名称。但这种情况并非如此。像[1234| ] 这样的输入框类型不像[ 1 ]。而且我不知道如何在输入框中获取键名。
def callback(event):
key_input_entered.focus_set()
print(repr(event.char))
kb_frame = ttk.Frame(self.kb)
kb_frame.grid(column=0, row=1, pady=(7, 19))
ttk.Label(kb_frame, text='Enter Key').grid(column=0, row=0, pady=4)
key_input = tk.StringVar()
key_input_entered = ttk.Entry(kb_frame, width=15, textvariable=key_input)
key_input_entered.grid(column=0, row=1)
key_input_entered.bind('<Key>', callback)
【问题讨论】:
-
我认为您需要创建一个键盘事件处理程序并使用它来填充
Text小部件或类似的东西。 -
标签: python tkinter keyboard-events tkinter-entry