Featured image of post Python Basic 23 Tkinter Entry Widget

Python Basic 23 Tkinter Entry Widget

本篇文章主要 Python Tkinter 的 Entry Widget

欢迎来到Tkinter Entry控件的世界!(◕‿◕✿)

基本介绍

Entry是Tkinter中最常用的文本输入控件,就像这样 → [______] ← 可以在这里输入文字哦~

1
2
3
4
5
6
7
from tkinter import *

root = Tk()
entry = Entry(root)
entry.insert(0, "Hello World!")
entry.pack()
root.mainloop()

这样你就创建了一个最简单的输入框啦 (★ω★)

alt text

常用属性设置

基础属性

  • width: 宽度(单位是字符数)
  • bg/background: 背景色
  • fg/foreground: 文字颜色
  • font: 字体
  • show: 显示替代字符(常用于密码输入)
  • textvariable: 绑定变量
1
2
3
4
5
6
7
8
# 高级一点的例子 (●'◡'●)
password_entry = Entry(root, 
                      width=20,
                      bg="light yellow",
                      fg="blue",
                      font=("Arial", 12),
                      show="*")  # 密码显示为*
password_entry.pack()

边框样式

  • bd/borderwidth: 边框宽度
  • relief: 边框样式 (FLAT, SUNKEN, RAISED, GROOVE, RIDGE)
1
2
3
4
5
fancy_entry = Entry(root,
                   bd=5,
                   relief=GROOVE,
                   bg="mistyrose")
fancy_entry.pack()

数据操作

插入和获取内容

  • insert(index, text): 插入文本
  • get(): 获取内容
  • delete(first, last=None): 删除内容
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 预填充示例 ヾ(•ω•`)o
default_entry = Entry(root)
default_entry.insert(0, "在这里输入...")
default_entry.pack()

# 获取输入的按钮
def show_text():
    print("你输入的是:", default_entry.get())
  
Button(root, text="打印输入", command=show_text).pack()

验证功能

可以通过validate和相关选项进行输入验证:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 只能输入数字的验证 (⊙ˍ⊙)
def only_numbers(char):
    return char.isdigit()

validate_num = (root.register(only_numbers), '%S')

num_entry = Entry(root,
                 validate="key",
                 validatecommand=validate_num)
num_entry.pack()

绑定事件

常见的绑定事件:

  • <FocusIn>: 获得焦点
  • <FocusOut>: 失去焦点
  • <Return>: 按下回车键
  • <Key>: 按键事件
1
2
3
4
5
6
7
# 回车键事件示例 (`・ω・´)
def on_enter(event):
    print("你按了回车键!内容是:", event.widget.get())

entry = Entry(root)
entry.bind("<Return>", on_enter)
entry.pack()

小贴士 💡

  1. 使用xview_movetoxview_scroll可以让长文本滚动
  2. 结合StringVar可以更方便地跟踪内容变化
  3. 设置state="readonly"可以创建只读输入框

希望这个指南对你有帮助!(づ。◕‿‿◕。)づ 现在去创建属于你的输入框吧~

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计