1.4 Entry 单行文本输入框
说明
Entry 是 Tkinter 中用于单行文本输入的组件。用户可以通过它输入文本内容,常用于表单、登录界面等场景。
创建
entry = tk.Entry(root)
- 作用:创建一个单行文本输入框。
- 参数:
- root:父容器(通常是根窗口或其他容器)。
常用选项
以下是 Entry 的常用配置选项:
textvariable
- 说明:绑定一个变量(如 StringVar),用于动态获取或设置输入框的内容。
- 示例:
text_var = tk.StringVar()
entry = tk.Entry(root, textvariable=text_var)
show
- 说明:设置输入框显示的字符(用于密码输入等场景)。
- 示例:
entry = tk.Entry(root, show="*") # 输入内容显示为 *
width
- 说明:设置输入框的宽度(以字符数为单位)。
- 示例:
entry = tk.Entry(root, width=30)
font
- 说明:设置输入框文本的字体、大小和样式。
- 示例:
entry = tk.Entry(root, font=("Arial", 12))
bg(background)
- 说明:设置输入框的背景颜色。
- 示例:
entry = tk.Entry(root, bg="lightyellow")
fg(foreground)
- 说明:设置输入框文本的颜色。
- 示例:
entry = tk.Entry(root, fg="blue")
borderwidth 或 bd
- 说明:设置输入框边框的宽度。
- 示例:
entry = tk.Entry(root, borderwidth=2)
relief
- 说明:设置输入框的边框样式(如 "flat", "raised", "sunken", "groove", "ridge")。
- 示例:
entry = tk.Entry(root, relief="sunken")
state
- 说明:设置输入框的状态(如 "normal", "disabled", "readonly")。
- 示例:
entry = tk.Entry(root, state="readonly") # 只读模式
insertbackground
- 说明:设置输入光标的颜色。
- 示例:
entry = tk.Entry(root, insertbackground="red")
selectbackground
- 说明:设置选中文本的背景颜色。
- 示例:
entry = tk.Entry(root, selectbackground="yellow")
selectforeground
- 说明:设置选中文本的颜色。
- 示例:
entry = tk.Entry(root, selectforeground="blue")
示例演示
以下是一个完整的示例,展示如何使用 Entry 创建和配置单行文本输入框:
import tkinter as tk
# 创建根窗口
root = tk.Tk()
root.title("Entry 示例")
root.geometry("400x300")
# 定义获取输入内容的函数
def get_text():
input_text = entry.get()
label.config(text=f"你输入的内容是:{input_text}")
# 创建标签
label = tk.Label(root, text="请输入内容:", font=("Arial", 14))
label.pack(pady=10)
# 创建并配置输入框
entry = tk.Entry(root, width=30, font=("Arial", 12), bg="lightyellow", fg="blue", relief="sunken", borderwidth=2)
entry.pack(pady=10)
# 创建按钮,用于获取输入内容
button = tk.Button(root, text="获取输入", command=get_text, bg="lightgreen", fg="white", font=("Arial", 12))
button.pack(pady=10)
# 创建只读输入框
readonly_entry = tk.Entry(root, width=30, font=("Arial", 12), state="readonly")
readonly_entry.insert(0, "这是一个只读输入框")
readonly_entry.pack(pady=10)
# 创建密码输入框
password_entry = tk.Entry(root, width=30, font=("Arial", 12), show="*")
password_entry.pack(pady=10)
# 启动主循环
root.mainloop()
代码说明
标签:
- 显示文本“请输入内容:”。
- 字体为 Arial,大小为 14。
输入框:
- 宽度为 30 个字符。
- 字体为 Arial,大小为 12。
- 背景颜色为浅黄色,文本颜色为蓝色。
- 边框样式为凹陷(sunken),边框宽度为 2。
按钮:
- 显示文本“获取输入”。
- 背景颜色为浅绿色,文本颜色为白色。
- 点击按钮后,获取输入框内容并更新标签文本。
只读输入框:
- 宽度为 30 个字符。
- 字体为 Arial,大小为 12。
- 状态为只读(state="readonly")。
- 初始内容为“这是一个只读输入框”。
密码输入框:
- 宽度为 30 个字符。
- 字体为 Arial,大小为 12。
- 输入内容显示为 *(show="*")。
运行效果
- 窗口大小为 400x300。
- 标签显示“请输入内容:”。
- 输入框允许用户输入文本,点击“获取输入”按钮后,标签会显示输入的内容。
- 只读输入框不可编辑,显示固定内容。
- 密码输入框的内容显示为 *。
注意事项
- 使用 textvariable 可以动态绑定输入框内容,适用于需要实时更新数据的场景。
- 如果输入框内容需要验证,可以使用 validate 和 validatecommand 选项。
通过这个示例,你可以掌握 Entry 的基本用法,并根据需要配置输入框的样式和行为。