✨✨✨
感谢优秀的你打开了小白的文章
“希望在看文章的你今天又进步了一点点,离美好生活更近一步!”🌈
🍉Entry组件
首先来介绍一下Entry组件,Entry 用来接收一行字符串的控件。如果用户输入的文字长度长于 Entry 控件的宽度时, 文字会自动向后滚动。如果想输入多行文本, 需要使用 Text 控件。
🍉参数
Entry(master=None, **options) (class)
master -- 父组件
**options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:
选项 含义
background 1. 设置 Entry 的背景颜色
2. 默认值由系统指定
bg 和background 用法一样
borderwidth 1. 设置 Entry 的边框宽度
2. 默认值是 1 或 2 像素
bd 和borderwidth 一样
cursor 1. 指定当鼠标在 Entry 上飘过的时候的鼠标样式
2. 默认值由系统指定
exportselection 1. 指定选中的文本是否可以被复制到剪贴板
2. 默认值是 True
3. 可以修改为 False 表示不允许复制文本
font 1. 指定 Entry 中文本的字体
2. 默认值由系统指定
foreground 1. 设置 Entry 的文本颜色
2. 默认值由系统指定
fg 跟 foreground 一样
highlightbackground 1. 指定当 Entry 没有获得焦点的时候高亮边框的颜色
2. 默认值由系统指定
highlightcolor 1. 指定当 Entry 获得焦点的时候高亮边框的颜色
2. 默认值由系统指定
highlightthickness 1. 指定高亮边框的宽度
2. 默认值是 1 或 2 像素
insertbackground 指定输入光标的颜色
insertborderwidth 1. 指定输入光标的边框宽度
2. 如果被设置为非 0 值,光标样式会被设置为 RAISED
insertofftime 1. 该选项控制光标的闪烁频率(灭)
insertontime 1. 该选项控制光标的闪烁频率(亮)
insertwidth 指定光标的宽度
invalidcommand 1. 指定当输入框输入的内容“非法”时调用的函数
2. 也就是指定当 validateCommand 选项指定的函数返回 False 时的函数
invcmd 跟 invalidcommand 一样
justify 1. 定义如何对齐输入框中的文本
2. 使用 "left","right" 或 "center"
3. 默认值是 "left"
relief 1. 指定边框样式
2. 默认值是 "sunken"
3. 其他可以选择的值是 "flat","raised","groove" 和 "ridge"
selectbackground 指定输入框的文本被选中时的背景颜色
selectborderwidth 指定输入框的文本被选中时的边框宽度(选中边框)
selectforeground 指定输入框的文本被选中时的字体颜色
show 1. 设置输入框如何显示文本的内容
2. 如果该值非空,则输入框会显示指定字符串代替真正的内容
3. 将该选项设置为 "*",则是密码输入框
state 1. Entry 组件可以设置的状态:"normal","disabled" 或 "readonly"(注意,它跟 "disabled" 相似,但它支持选中和拷贝,只是不能修改,而 "disabled" 是完全禁止)
2. 默认值是 "normal"
3. 如果此选项设置为 "disabled" 或 "readonly",那么调用 insert() 和 delete() 方法都会被忽略
takefocus 1. 指定使用 Tab 键可以将焦点移动到输入框中
2. 默认是开启的,可以将该选项设置为 False 避免焦点在此输入框中
textvariable 1. 指定一个与输入框的内容相关联的 Tkinter 变量(通常是 StringVar)
2. 当输入框的内容发生改变时,该变量的值也会相应发生改变
validate 1. 该选项设置是否启用内容验证
validatecommand 1. 该选项指定一个验证函数,用于验证输入框内容是否合法
2. 验证函数需要返回 True 或 False 表示验证结果
vcmd 跟 validatecommand 一样
width 1. 设置输入框的宽度,以字符为单位
2. 默认值是 20
3. 对于变宽字体来说,组件的实际宽度等于字体的平均宽度乘以 width 选项的值
xscrollcommand 与 scrollbar(滚动条)组件相关联
🍉强化实例
"""测试Entry组件的基本用法,使用面向对象的方式"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self, master=None):
super().__init__(master) # super()代表的是父类的定义,而不是父类对象
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
"""创建登录界面的组件"""
self.label01 = Label(self,text="用户名")
self.label01.pack()
# StringVar变量绑定到指定的组件。
# StringVar变量的值发生变化,组件内容也变化;
# 组件内容发生变化,StringVar变量的值也发生变化。
v1 = StringVar()
self.entry01 = Entry(self,textvariable=v1)
self.entry01.pack()
v1.set("admin")
print(v1.get());print(self.entry01.get())
# 创建密码框
self.label02 = Label(self,text="密码")
self.label02.pack()
v2 = StringVar()
self.entry02 = Entry(self,textvariable=v2, show="*")
self.entry02.pack()
Button(self,text="登陆",command=self.login).pack()
def login(self):
username = self.entry01.get()
pwd = self.entry02.get()
print("load......")
print("用户名:"+username)
print("密码:"+pwd)
if username=="xiaobai" and pwd=="123456":
messagebox.showinfo("登录拼夕夕抢iPhone13", "登录成功!已获得iPhone13!")
else:
messagebox.showinfo("登录拼夕夕抢iPhone13","登录失败!用户名或密码错误!")
if __name__ == '__main__':
root = Tk()
root.geometry("400x130+200+300")
app = Application(master=root)
root.mainloop()
登录成功时:
登录失败时:
🚀往期回顾
📣GUI 图形用户界面编程(一): (278条消息) GUI 图形用户界面编程(一)_am_student的博客-CSDN博客
📣GUI 图形用户界面编程(二):
(278条消息) GUI 图形用户界面编程(二)经典案例_am_student的博客-CSDN博客
📣GUI 图形用户界面编程(三):
(278条消息) GUI 图形用户界面编程(三)基本框架与Label的使用_am_student的博客-CSDN博客
📣GUI 图形用户界面编程(四):