1

如标题所述,我试图在将字符输入文本字段后立即删除它。

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()

以下代码仅在键入另一个字符后删除该字符。但是,打印语句可以按预期立即工作。我想知道是什么导致了这种行为以及如何解决它。感谢任何线索。

4

1 回答 1

0

这是您提供的代码,我将 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()
于 2021-05-03T21:11:40.793 回答