在本文中,将先容怎样使用 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}\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.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