Tkinter文本输入控件

Tkinter文本输入控件-Entry控件允许用户输入只有一种字体类型的单行文本。如果需要更多行,则应使用TkinterText控件。 Entry控件也可用于显示单行文本。

Tkinter Entry文本输入控件示例

Tkinter Entry_Basic.py
import tkinter as tk
from tkinter import ttk

def callbackFunc():
    resultString.set("{} - {}".format(landString.get(),
                                      cityString.get()))
     
app = tk.Tk() 
app.geometry('200x100')

labelLand = tk.Label(app,
                    text = "Country")
labelLand.grid(column=0, row=0, sticky=tk.W)
labelCity = tk.Label(app,
                    text = "City")
labelCity.grid(column=0, row=1, sticky=tk.W)

landString = tk.StringVar()
cityString = tk.StringVar()
entryLand = tk.Entry(app, width=20, textvariable=landString)
entryCity = tk.Entry(app, width=20, textvariable=cityString)

entryLand.grid(column=1, row=0, padx=10)
entryCity.grid(column=1, row=1, padx=10)


resultButton = tk.Button(app, text = 'Get Result',
                         command=callbackFunc)

resultButton.grid(column=0, row=2, pady=10, sticky=tk.W)

resultString=tk.StringVar()
resultLabel = tk.Label(app, textvariable=resultString)
resultLabel.grid(column=1, row=2, padx=10, sticky=tk.W)

app.mainloop()

此示例代码创建了一个GUI,用户可以输入国家和城市名称,然后在单击Get Result按钮后显示输入的信息。

Tkinter文本输入控件例子

entryLand = tk.Entry(app, width=20, textvariable=landString)

它创建了一个TkinterEntry控件实例,其宽度为20个字符单位。它只能在输入框中显示20个字符,因此,如果文本行超过20个字符,则需要使用箭头来移动文字来显示剩余的文字。

Entry控件的文本被分配给Tkinter字符串变量landString。您可以使用landString.get()方法获取文本,并使用landString.set()方法设置文本。如果使用set()方法,则输入框中的文本会自动更新。

Note
除了StringVarget()方法外,你还可以用Entry控件对象的get()方法来得到Entry里面输入的文字。

Tkinter Entry文本输入控件默认文字

我们有两种方法来设置Entry默认文字,

set()方法来设置Tkinter Entry控件默认文字

如上例所示,您可以使用StringVarset()方法来设置TkinterEntry的默认文字。

例如,

landString.set("Netherlands")

它会将默认文字设置为Netherlands

insert()方法来设置Tkinter Entry控件默认文字

insert(index,string)方法在给定的index位置插入文字string。如果indexEND,它会将文字附加到Entry控件。

entryLand.insert(tk.END, "Netherlands")

它将默认文字设置为Netherlands

Note
如果Index比控件中已有的文字长度要长的话,那它就跟insert(END, string)的效果相同。