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

云课堂学Python2024-10-08 08:04:11  107

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

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

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

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

创建 Entry 单行文本框

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

获取文本框内容

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

import tkinter as tkroot = tk.Tkroot.geometry('300x200+200+200')root.title('entry 单行文本框演示')def print_entry: entry_text=entry.get print(entry_text)text = tk.StringVarentry = 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 tkroot = tk.Tkroot.geometry('300x200+200+200')root.title('entry 单行文本框演示')text = tk.StringVarentry = tk.Entry( root, textvariable=text, show='*')entry.pack(padx=10, pady=10, expand=True)entry.focusroot.mainloop

其他可选参数及方法

bg : 背景颜色。

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

font :文本字体。

fg :文本颜色。

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

width:文本框宽度。

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

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

只读文本框

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

import tkinter as tkroot = tk.Tkroot.geometry('300x200+200+200')root.title('entry 单行文本框演示')text = tk.StringVarentry = 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 tkroot = tk.Tkroot.geometry('300x200+200+200')root.title('entry 单行文本框演示')def callback(input): return input.isdigittext = tk.StringVarreg = 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 tkfrom tkinter.messagebox import showinforoot = tk.Tkroot.geometry('300x200+200+200')root.title('登录窗口演示')email = tk.StringVarpassword = tk.StringVardef login_clicked: msg = f'电子邮件:{email.get} 密码:{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.packemail_entry.focuspassword_label = tk.Label(root, text="密码:")password_label.packpassword_entry = tk.Entry(root, textvariable=password, width=30, show="*")password_entry.packlogin_button = tk.Button(root, text="登录", command=login_clicked, width=30)login_button.pack(pady=10)root.mainloop

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/1333352.html
0
随机主题
大S回应“张兰称孩子退学”:请停止造谣,赔礼道歉峥嵘二十载, 一图细数文博会的“高光时刻”恒生科技指数日内跌超2%王思聪骂汪峰被吐槽五十步笑百步, 都不长情, 婚恋失败也没损失佟丽娅白色镂空抹胸礼服裙, 佟丽娅大秀身材山海有约 海西州来甬推介! “浙青一家亲·共筑山海情”文化走亲宁波专场举行历史重演?海港外援不满被换下:当场与教练组发生“内讧”!《披哥4》曝光嘉宾名单, 李佳琦黑泽良平在列, 李克勤带队大咖少2024新鲜提案·黎里真实影像大会在苏州黎里开幕药厂全队梦游遭完爆, 不败金身被破“龙圣”坠入凡间宋轶, 好好爱你庆余年2唯一输家: 最牛星二代跌下神坛, 演技尴尬, 全程被吊打15年攻关实现全人工繁殖 探秘“水中大熊猫”川陕哲罗鲑英雄年代手游: 勇气与智慧的结合, 十年之约经典回归!苏纳克雨中公布大选日, 西装全湿透反遭嘲笑, 王室会为选首相让路4-1, 6-3! 曼城太强, 7次吊打曼联, 足总杯151亿决战, 央视不直播记者: 在瓜帅之后, 加斯佩里尼是第一个真正为足球带来改变的教练底盘革新之作——问界新M7 Max焕新版即将正式上市卫报: 拜仁已经就孔帕尼补偿金问题与伯恩利展开谈判与预售价一样 2.4T乘用炮、商用炮上市 12.58万元起售苦命的人! 叙利亚第一夫人又被确诊癌了, 老美称: 她等于一个师
最新回复(0)