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.xdnf.cn/news/1557218.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Allegro如何合并同名网络铜皮操作指导

Allegro如何合并同名网络铜皮操作指导 Allegro可以将同名网络的铜皮合并起来,如下图,需要把下面两块铜皮合并成一块铜皮 具体操作如下 选择Shape 选择merge shapes Find选择shapes 点击其中一块铜皮,会被亮起来 再点击另外一块铜皮 两块铜皮…

Python酷库之旅-第三方库Pandas(136)

目录 一、用法精讲 611、pandas.DataFrame.to_orc方法 611-1、语法 611-2、参数 611-3、功能 611-4、返回值 611-5、说明 611-6、用法 611-6-1、数据准备 611-6-2、代码示例 611-6-3、结果输出 612、pandas.DataFrame.to_dict方法 612-1、语法 612-2、参数 612-…

使用日志服务告警为您的OSS保驾护航

日志服务SLS告警作为一站式运维告警平台,为OSS的访问提供了定制化的告警规则。您只需要在日志服务控制台进行简单配置,即可完成对OSS访问指标的监控,并在指标出现异常时及时收到告警通知。 场景描述 客户A是一家多媒体公司,主要…

【机器学习】探索机器学习在医疗影像分析中的应用

1. 🚀 引言1.1 🚀 医疗影像分析的现状与发展趋势1.2 📜 机器学习在医疗影像分析中的核心概念1.3 🏆 医疗影像分析在临床应用中的作用 2. 🔍 医疗影像分析的演变与创新2.1 🌟 医疗影像分析的发展历程2.2 &am…

通过实时可视性转变云安全

Upwind首席执行官 Amiram Shachar 讨论了混合和多云环境中云安全的复杂性。 他概述了深入了解配置和实时洞察的必要性,以实现敏捷性和安全性之间的平衡。 还分享了解决错误配置和确保合规性的策略,建议在云部署中采取主动的风险管理方法。 随着混合云…

安装Spark-单机部署,Standalone集群部署,Spark on Yarn实现

目录 单机部署spark本地模式部署 Anaconda部署Python(3台机器都需要) Spark本地模式部署 Spark Python Shell Spark的Standalone集群部署 Standalone集群架构 Standalone集群部署 Standalone集群启动 Standalone集群测试 Spark on YARN的实现 Spark on YARN&#xf…

kubernetes集群公共服务 Harbor

首先,还是需要新创建一个虚拟机,就像之前一样,然后启动虚拟机,设置主机名和网络,网关,DNS等。 接下来检查防火墙,selinux是否关闭,以及是否做了时钟同步。 一、 docker-ce安装 1.1 获取YUM源 使用阿里云开源…

自动驾驶系列—揭秘毫米波雷达:自动驾驶的眼睛如何看穿复杂环境?

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

SpringBoot开发——SpringSecurity安全框架17个业务场景案例(二)

文章目录 一、Spring Security 常用应用场景介绍二、Spring Security场景案例6、CSRF 保护(CSRF Protection)6.1 Spring Security 配置6.2 业务逻辑代码7、密码编码(Password Encoding)7.1 Spring Security 配置7.2 业务逻辑代码7.3 控制器8、方法级安全性(Method Securit…

李飞飞:我不知道什么是AGI

图片来源:Stanford University 你对人工通用智能(AGI)感到困惑吗?这就是 OpenAI 执着于最终以“造福全人类”的方式创造的东西。你可能想认真对待他们,因为他们刚筹集了 66 亿美元以更接近这个目标。 但如果你仍然在…

国外电商系统开发-运维系统文件上传-快速上传

点击【快速】,意思是速度快,步骤简单 在上面的输入中,是输入您要把您的文件传到远程服务器的哪个目录下,注意,比如您选择了10个服务器,10个服务器的目标路径都一样,那么您在这里点击【快速】即可…

《动手学深度学习》Pytorch 版学习笔记一:从预备知识到现代卷积神经网络

前言 笔者有一定的机器学习和深度学习理论基础,对 Pytorch 的实战还不够熟悉,打算入职前专项突击一下 本文内容为笔者学习《动手学深度学习》一书的学习笔记 主要记录了代码的实现和实现过程遇到的问题,不完全包括其理论知识 引用&#x…

Windows VSCode 配置 Java 环境 (Maven)

一、简介 这篇博客介绍一下 Windows 环境中,使用 VSCode 编译、调试、启动、运行、发布 Java 项目(Maven)。 二、Maven 安装 如果已经安装过 Maven 可以跳过此步骤。Maven 的安装,可以参照博客 Windows 安装 Maven 并配置环境变…

织物布匹疵点检测数据集,布匹缺陷检测数据集 标注工具:LabelImg 数量:已标注1084张(5类);未标注:2000余张

织物疵点检测数据集,布匹缺陷检测数据集 标注工具:LabelImg 数量:已标注1084张(5类);未标注:2000余张 简介:织物疵点检测是一种基于计算机视觉技术的自动化检测方法,旨在通过对织物图…

【STM32开发之寄存器版】(七)-PWM脉冲宽度调制

一、前言 PWM简介 PWM(脉宽调制)是一种通过调节信号的脉冲宽度来控制功率输出的技术。其基本原理是保持固定频率的信号,将其高电平和低电平的持续时间调整,达到控制平均功率的目的。应用方面,PWM广泛用于电机控制、LED…

C语言基础题(大合集1)

1. Hello World! 写一个程序 &#xff0c; 在控制台上输出 &#xff1a; Hello World! #include <stdio.h> int main() {printf("Hello World!\n");return 0; }main 函数是程序的入口 &#xff0c; 一个工程有且仅有一个 main函数 代码是从 main 函数的第一行开…

数学概念算法-打印100以内的素/质数

素数&#xff1a;只能被1和自己整除的数 暴力破解 埃氏筛选 找到第一个数字&#xff0c;如果它是素数&#xff0c;则把它的倍数全部划掉 比如数字2是素数&#xff0c;那么 4,6,8,10,12。这些数字肯定不是素数&#xff0c;所以不用再考虑&#xff0c;直接划掉即可 第二步&#…

SQL注入靶场sqli-labs less-4

sqli-labs靶场第三关less-4 1、确定注入点 http://192.168.128.3/sq/Less-4/?id1 http://192.168.128.3/sq/Less-4/?id2 有不同回显&#xff0c;判断可能存在注入&#xff0c; 2、判断注入类型 输入 http://192.168.128.3/sq/less-4/?id1 and 11 http://192.168.128.3/sq/l…

C++(异常)

目录 C语言传统的处理错误的方式 传统的错误处理机制 C异常概念 异常的使用 异常的抛出和捕获 异常的抛出和匹配原则 在函数调用链中异常栈展开匹配原则 异常的重新抛出 异常安全 异常规范 自定义异常体系 C标准库的异常体系 异常的优缺点 C异常的优点 C异常的缺…

DB_GPT excel研究

DB_GPT excel研究 摘要视频简介源码分析excel文档上传预处理对话 摘要 DB_GPT集成了很多对话方式&#xff0c;其中呢就有关于excel对话的模块&#xff0c;我搜集各大web好像都没有关于这个模块的研究&#xff0c;于是乎就自行研究了对于excel对话的的功能 如果是想看与数据库…