【发布时间】:2021-07-15 23:47:03
【问题描述】:
您能否告诉我是否有一种方便的方法可以仅在 tk/tkinter 的“重要”键上进行绑定?
所以,情况是我在 tk.Entry 上有一个绑定(因为我需要在按键被按下时触发回调),如下所示:
myEntry.bind('<Key>', ...)
现在,无论按下什么键都会触发绑定回调(即使是 shift!),但 我希望它仅在“重要”键上触发...通过“重要”我的意思是每个涉及条目中文本更改的键,所以“重要”键肯定是字母、数字、符号和退格键或删除键,但不是箭头键、home、end、pgUp/Down 或选项卡、大写锁定、shift、ctrl 等...(我仍在考虑是否需要它在返回键上触发,但这不是问题,因为如果我也需要它,我可以添加一个特定的绑定它或以其他方式在稍后的回调中忽略它)
我不知道是否有与<Key> 不同的东西我可以绑定以获得我需要的东西,是吗?
否则,如果没有,我知道我可以通过查看事件键码来获取按下了哪个键......这是要走的路吗?如果是的话,你能建议我一些合适的键码间隔吗?
谢谢
【问题讨论】:
-
event.char会给你钥匙 -
@Matiiss 是的,我认为它的工作方式与 event.keycode 类似,但是它给出的不是数字代码,而是键名(字符串)......然后,如果我必须这样做,事件.keycode 可能更适合过滤我猜...
-
不是真的,是吗?因为它们不会根据系统而改变吗?
-
这能回答你的问题吗? Python tkinter text modified callback 键事件绑定不会看到所有可能的变化 - 如果用户仅使用鼠标粘贴文本会怎样?
-
“因为我需要在按键被按下时触发回调” - 出于好奇,按下按键时是否需要绑定,或者是真正的问题每当条目的内容发生变化时,您需要一个回调来运行吗?如果是后者,回调在做什么?它是在验证输入还是其他什么?
标签: python python-3.x tkinter tk