Tkinter 教程 - 文本输入控件

Jinku Hu 2023年1月30日
  1. Tkinter Entry 文本输入控件示例
  2. Tkinter Entry 文本输入控件默认文字
Tkinter 教程 - 文本输入控件

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

Tkinter Entry 文本输入控件示例

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)

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

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

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

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

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

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

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

例如,

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) 的效果相同。
作者: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook