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

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

文章图片

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

文章图片

Python GUI 编程:tkinter 初学者入门指南——单行文本框
在本文中 , 将介绍如何使用 tkinter Entry 小部件 。 tkinter Entry 小部件允许创建能够输入的单行文本框 。
要创建 Entry 单行文本框 , 请按如下方式使用构造函数:
textbox = tk.Entry(master **options)
通常 , 将 Entry 单行文本框输入的当前值与 StringVar 对象相关联 。
创建 Entry 单行文本框import tkinter as tkroot = tk.Tk()root.geometry('300x200+200+200')root.title('entry 单行文本框演示')text = tk.StringVar()entry = tk.Entry(roottextvariable=text)entry.pack(padx=10 pady=10 expand=True)root.mainloop()
获取文本框内容要将 Entry 单行文本框中的当前文本作为字符串获取 , 可以使用 get() 方法 。
import tkinter as tkroot = 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(roottextvariable=text)entry.pack(padx=10 pady=10 expand=True)button = tk.Button(roottext=\"输出\"command=print_entry)button.pack(ipadx=5 ipady=5 expand=True)root.mainloop()
以上示例中 , 创建一个按钮 , 用于将 Entry 单行文本框的文本内容输出到 shell 。
单行文本框获取焦点为了提供更好的用户体验 , 可以让窗口中的第一个单行文本框自动获得焦点 , 直接接受用户输入 。 可以使用 focus() 方法 。
作为密码输入框使用要在单行文本框上输入时隐藏敏感信息 , 例如密码 , 可以添加参数:show='*' 。 输入密码时 , 它不会显示实际字符 , 而是显示参数中指定的星号 。
import tkinter as tkroot = tk.Tk()root.geometry('300x200+200+200')root.title('entry 单行文本框演示')text = tk.StringVar()entry = tk.Entry(roottextvariable=textshow='*')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 tkroot = tk.Tk()root.geometry('300x200+200+200')root.title('entry 单行文本框演示')text = tk.StringVar()entry = tk.Entry(roottextvariable=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.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 tkfrom tkinter.messagebox import showinforoot = tk.Tk()root.geometry('300x200+200+200')root.title('登录窗口演示')email = tk.StringVar()password = tk.StringVar()def 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.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()【Python GUI 编程:tkinter 初学者入门指南——单行文本框】

    推荐阅读