问题描述
import tkinter as tk
window = tk.Tk()
input = tk.Text()
input.pack()
def handle_keypress(event):
print("test")
input.delete("1.0")
input.bind("<Key>",handle_keypress)
window.mainloop()
以下代码仅在键入另一个字符后删除该字符。但是,打印语句按预期立即工作。我想知道是什么导致了这种行为以及如何修复它。感谢您提供任何线索。
解决方法
这是您提供的代码,我将 Tk.text 更改为 tk.entry,您仍然可以通过 .configure 调整大小,其本质上是相同的。
如果您要解决的问题是在字符可见之前删除它,则您需要使用 '''tk.END''' 来在按下键时从本质上清除该条目,如果您运行该代码,则什么都不会显示但您仍会打印您按下的字符。
我也将绑定更改为实际窗口而不是条目,但无论哪种方式都应该相同
如果您有任何问题,请告诉我
import tkinter as tk
window = tk.Tk()
def handle_keypress(event):
#capture character entered,print it,then empty the textfield
print(event.char)
input1.delete(0,tk.END)
#changed from tk.text to tk.entry,you can use .configure(textvariable) to have further control
input1 = tk.Entry()
input1.pack()
#binded to window
window.bind("<Key>",handle_keypress)
window.mainloop()