首页 > 解决方案 > Tkinter 'space' 绑定和条目清除

问题描述

好的,所以我正在 Tkinter 中进行打字速度测试。我希望在按空格时清除条目。但是,它确实如此,因为空间被绑定为清除条目的键,就好像 Tkinter 清除了条目然后在之后向条目添加空间一样。意思是,在输入第一个单词之后,从那里开始,在您开始输入下一个单词之前,条目的开头总是有一个空格。

标签: pythontkinter

解决方案


你可以通过返回来获得你想要的行为"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()

另外,需要注意的是,第二种解决方案将添加一个空格然后删除,而第一个解决方案只是删除文本而不添加任何空格。


推荐阅读