我正在尝试清除或重置文本框并存储新结果。基本上,每次按下按钮时,我都希望在存储新文本之前清空文本框。
在我的研究中,出现了以下线程,他似乎也有类似的目标,但我不确定如何将其应用到我的代码中。 TKinter - Clear text widget
我已经尝试了以下方法,但由于明显的原因它不起作用。不知道还有什么方法可以解决这个问题。
button = tk.Button(root, command=lambda: button_cmmd())
def button_cmmd():
if len(text_widget_1.get("1.0", "end-1c")) <= 5:
#I get descriptions - this portion works.
else:
text_widget_2.delete("1.0", END)
编辑 我工作的一半解决方案是:
def button_cmmd():
if len(text_widget_2.get("1.0", "end-1c")) <= 2:
text_widget_1.get("1.0", "end-1c"))
else:
text_widget_2.delete("1.0", "end-1c")
现在的一个小问题是,单击按钮一次将填充 text_box_2
,第二次单击将删除该文本,因此您必须第三次单击它才能再次运行 .get
。
答案 0 :(得分:0)
您可以使用 tkinter.StringVar
对象并将其传递给 textvariable
调用的 tkinter.Entry()
参数。
entry_var = tkinter.StringVar(root, value="default value")
entry = tkinter.Entry(root, textvariable=entry_var)
button = tkinter.Button(root, text="Clear", command=lambda: clear_entry(entry_var))
entry.pack()
button.pack()
def clear_entry(var):
var.set("")
为了测试它,我只是在 IDLE 中运行它:
>>> import tkinter
>>> root = tkinter.Tk()
>>> entry_var = tkinter.StringVar(root, value="default value")
>>> def clear_entry(var):
var.set("")
>>> entry = tkinter.Entry(root, textvariable=entry_var)
>>> button = tkinter.Button(root, text="Clear", command=lambda: clear_entry(entry_var))
>>> entry.pack()
>>> button.pack()
>>> root.mainloop()
点击前:
点击后: