当前位置: 首页 > news >正文

Python GUI 编程:tkinter 初学者入门指南——单行文本框

在本文中,将介绍如何使用 tkinter Entry 小部件。tkinter Entry 小部件允许创建能够输入的单行文本框。

要创建 Entry 单行文本框,请按如下方式使用构造函数:

textbox = tk.Entry(master, **options)

通常,将 Entry 单行文本框输入的当前值与 StringVar 对象相关联。

创建 Entry 单行文本框

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 单行文本框演示')text = tk.StringVar()
entry = tk.Entry(root,textvariable=text,
)
entry.pack(padx=10, pady=10, expand=True)root.mainloop()

获取文本框内容

要将 Entry 单行文本框中的当前文本作为字符串获取,可以使用 get() 方法。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 单行文本框演示')def print_entry():entry_text=entry.get()print(entry_text)text = tk.StringVar()
entry = tk.Entry(root,textvariable=text,
)
entry.pack(padx=10, pady=10, expand=True)button = tk.Button(root, text="输出", command=print_entry
)
button.pack(ipadx=5, ipady=5, expand=True)root.mainloop()

以上示例中,创建一个按钮,用于将 Entry 单行文本框的文本内容输出到 shell。

单行文本框获取焦点

为了提供更好的用户体验,可以让窗口中的第一个单行文本框自动获得焦点,直接接受用户输入。可以使用 focus() 方法。

作为密码输入框使用

要在单行文本框上输入时隐藏敏感信息,例如密码,可以添加参数:show='*'。输入密码时,它不会显示实际字符,而是显示参数中指定的星号。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 单行文本框演示')text = tk.StringVar()
entry = tk.Entry(root,textvariable=text,show='*'
)
entry.pack(padx=10, pady=10, expand=True)entry.focus()root.mainloop()

其他可选参数及方法

  • bg : 背景颜色。

  • bd : 边框大小。默认值为 2 像素。

  • font :文本字体。

  • fg :文本颜色。

  • justify :文本对齐方式: CENTER、LEFT 或 RIGHT。

  • width:文本框宽度。

  • delete(index)方法:从文本框中删除给定索引的字符。

  • insert(index,'name')方法:在给定索引处插入字符串。

只读文本框

如果希望显示的文本可以选择和复制但不能修改,可以将文本框设置为只读。这在用户需要能够查看数据,还有保证数据完整性时非常有用。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 单行文本框演示')text = tk.StringVar()
entry = tk.Entry(root,textvariable=text,
)
entry.insert(0, "该文字只读!")
entry.config(state='readonly')
entry.pack(padx=10, pady=10, expand=True)root.mainloop()

文本框文本校验

如果想限制文本框文本类型的输入,可以通过验证来执行此操作。例如,一个只接受整数文本框。可以使用参数 validatecommand、validate等检查其有效性。

以下示例中,文本框只接受数字输入,不能输入其他字符。

import tkinter as tk
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('entry 单行文本框演示')def callback(input): return input.isdigit()text = tk.StringVar()
reg = root.register(callback) 
entry = tk.Entry(root, textvariable=text, width=30, validate="key", validatecommand=(reg, '%P'))
entry.pack(padx=10, pady=10, expand=True)root.mainloop()

登录窗口示例

import tkinter as tk
from tkinter.messagebox import showinfo
root = tk.Tk()
root.geometry('300x200+200+200')
root.title('登录窗口演示')email = tk.StringVar()
password = tk.StringVar()def login_clicked():msg = f'电子邮件:{email.get()}\n 密码:{password.get()}'showinfo(title='登录信息', message=msg)email_label = tk.Label(root, text="电子邮件:")
email_label.pack(pady=10)email_entry = tk.Entry(root, textvariable=email, width=30)
email_entry.pack()
email_entry.focus()password_label = tk.Label(root, text="密码:")
password_label.pack()password_entry = tk.Entry(root, textvariable=password, width=30, show="*")
password_entry.pack()login_button = tk.Button(root, text="登录", command=login_clicked, width=30)
login_button.pack(pady=10)root.mainloop()


http://www.mrgr.cn/news/45122.html

相关文章:

  • python 函数圈复杂度
  • Windows 安装 Maven 并配置环境变量
  • Java数据结构栈和队列(Stack和Queue详解)
  • 系统架构设计师教程 第14章 14.3 云原生架构相关技术 笔记
  • 网页前端开发之Javascript入门篇(8/9):数组
  • LabVIEW提高开发效率技巧----阻塞时钟
  • SQL专项练习第五天
  • Python OpenCV精讲系列 - 动态场景分析深入理解(十六)
  • python3 venv的使用详解
  • 冥想第一千三百零三天(1303)
  • TCN-Transformer时间序列预测(多输入单预测)——基于Pytorch框架
  • 基于时频分析与自适应滤波技术的多分量雷达信号提取与重建研究
  • Stable Diffusion最新版nowebui的api使用详解
  • java二维数组
  • python 实现最小生成树 boruvka算法
  • 【含文档】基于Springboot+Android的公交系统查询与设计(含源码+数据库+lw)
  • 各省份自然灾害损失情况数据(2004-2022年)
  • Redis快速入门
  • LoRA:大模型的低阶自适用(论文复现)
  • 解决Docker环境下Next.js和FastAPI的跨容器通信问题