Tkinter 文本小部件未清除

Tkinter Text widget not clearing

我正在尝试从 tkinter 的文本框中获取用户输入。我无法使用条目,因为我无法向它们添加填充,而且因为我无法让它们与 GUI 其余部分的美学相匹配。

所以,我用bind和return键,一次清除文本框,然后打印内容。

这是我的代码:

customInput = Text(redCanvas,bg=yellow,highlightthickness=0,padx=10,pady=10,font=font)
customInput.bind('<Return>', lambda e: e.widget.delete('1.0','end'))
customInput.bind('<Return>', lambda e: print(e.widget.get('1.0', 'end')))
customInput.place(relx=0.5,rely=0.925,relheight=0.075,relwidth=0.75,anchor=CENTER)

问题是旧输入没有被删除:我可以在 customInput 中向上滚动到它,当我按下 enter 时所有旧输入也被打印出来。

示例:

input: Input1
>> Input1
input: Input2
>> Input1
>> Input2
input: Input3
>> Input1
>> Input2
>> Input3

我可能遗漏了一些非常明显的东西(发生在我身上),如果这个问题是重复的,我深表歉意,但我尝试过的任何东西都没有用。

感谢回答。

第二个绑定语句覆盖第一个。因此,文本框的内容永远不会被删除,输出是 累计。

您需要先打印内容,然后删除它,如下所示:

customInput = Text(redCanvas,bg=yellow,highlightthickness=0,padx=10,pady=10,font=font)
customInput.bind('<Return>', lambda e: (print(e.widget.get('1.0', 'end')), e.widget.delete('1.0','end')))
customInput.place(relx=0.5,rely=0.925,relheight=0.075,relwidth=0.75,anchor=CENTER)