python - Tkinter 'space' 绑定和条目清除
问题描述
好的,所以我正在 Tkinter 中进行打字速度测试。我希望在按空格时清除条目。但是,它确实如此,因为空间被绑定为清除条目的键,就好像 Tkinter 清除了条目然后在之后向条目添加空间一样。意思是,在输入第一个单词之后,从那里开始,在您开始输入下一个单词之前,条目的开头总是有一个空格。
解决方案
你可以通过返回来获得你想要的行为"break"
。这将确保事件不会传播到其他处理程序。
这是一个最小的例子:
import tkinter as tk
def handle(event):
entry.delete("0", "end")
return "break"
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
entry.bind("<space>", handle)
root.mainloop()
同样正如@TheLizzard 指出的那样,您也可以尝试:entry.bind("<KeyRelease-space>", handle)
import tkinter as tk
def handle(event):
entry.delete("0", "end")
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
entry.bind("<KeyRelease-space>", handle)
root.mainloop()
另外,需要注意的是,第二种解决方案将添加一个空格然后删除,而第一个解决方案只是删除文本而不添加任何空格。
推荐阅读
- html - 如何传递数组代替指向函数的指针
- kubernetes-ingress - 在 aks 中从入口控制器公开多个 tcp 端口
- ruby - Xcode 12、Mac OS 10.15、用于安装 cocoapods 的 Xcode 服务器预集成脚本
- docker - 等待容器的 Docker 错误:上下文已取消
- android - 当列表包含多个 sku productId 时 params.setSkusList(list) 不起作用
- php - PHP JSON API - 检测返回值的数据类型
- sed - sed:如何用文件内容替换单个单词
- linux - 无法通过 shell 脚本在文件中创建和写入内容
- angular - 表单数组:找不到带有路径的控件:“列表-> 描述”
- c# - 从集成测试中播种时,.NET Core 3.1 IMemoryCache 为空