如何使用按钮设置 Tkinter Entry 文本输入控件的文本
我们有两种方法可以通过单击按钮来设置或更改 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
关联的控件将被自动更新。
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn