如何使用按钮设置 Tkinter Entry 文本输入控件的文本
Jinku Hu
2024年2月15日
我们有两种方法可以通过单击按钮来设置或更改 Tkinter Entry
文本输入控件的文本,
- Tkinter 的
delete
和insert
方法 - Tkinter 的
StringVar
方法
Tkinter 的 delete
和 insert
方法来设置 Entry
文本输入控件的内容
Tkinter 的 Entry
控件没有专用的 set
方法来设置 Entry
文本输入的内容。如果我们必须更改内容,它首先需要删除现有内容,然后插入新内容。
使用 delete
和 insert
方法在文本输入框中设置文本的完整的工作代码
import tkinter as tk
root = tk.Tk()
root.geometry("400x50")
def setTextInput(text):
textExample.delete(0, "end")
textExample.insert(0, text)
textExample = tk.Entry(root)
textExample.pack()
btnSet = tk.Button(
root, height=1, width=10, text="Set", command=lambda: setTextInput("new content")
)
btnSet.pack()
root.mainloop()
textExample.delete(0, "end")
Entry
的 delete
方法删除在文本输入框中指定范围的字符。
0
是 Entry
控件中内容的第一个字符,"end"
是内容的最后一个字符。因此,delete(0, "end")
删除文本输入框中的所有内容。
textExample.insert(0, text)
insert
方法将文本插入指定位置。在上面的代码中,它在开头插入了 text
。
Tkinter StringVar
方法来设置 Tkinter Entry
控件的内容
如果 Tkinter Entry
控件的内容已与 StringVar
对象相关联,则每次更新 StringVar
的值时,它可以自动更改 Tkinter Entry
控件的内容。
使用 StringVar 对象在 Entry
中设置文本的完整工作代码
import tkinter as tk
root = tk.Tk()
root.geometry("400x50")
def setTextInput(text):
textEntry.set(text)
textEntry = tk.StringVar()
textExample = tk.Entry(root, textvariable=textEntry)
textExample.pack()
btnSet = tk.Button(
root, height=1, width=10, text="Set", command=lambda: setTextInput("new content")
)
btnSet.pack()
root.mainloop()
textEntry = tk.StringVar()
textExample = tk.Entry(root, textvariable=textEntry)
textEntry
是一个 StringVar
对象,它与文本内容关联,或者与 Entry
控件中的 textvariable
选项关联。
textEntry.set(text)
如果将 textEntry
更新为新值 text
,则与 textvariable
关联的控件将被自动更新。
作者: Jinku Hu