GUI 图形用户界面编程(五)-登录页面

本文介绍了Tkinter库中的Entry组件,它是用于接收单行文本输入的控件。Entry支持多种配置选项,如背景色、边框宽度、光标样式等,并可通过textvariable绑定变量实时获取输入内容。此外,还展示了如何创建一个简单的登录界面,利用Entry实现用户名和密码的输入,并通过Button组件触发登录验证。
摘要由CSDN通过智能技术生成

 ✨✨✨

感谢优秀的你打开了小白的文章 

“希望在看文章的你今天又进步了一点点,离美好生活更近一步!”🌈

🍉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()

登录成功时:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_17,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_10,color_FFFFFF,t_70,g_se,x_16

 登录失败时:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b5q2l5bCP55m9,size_10,color_FFFFFF,t_70,g_se,x_16

 🚀往期回顾

📣GUI 图形用户界面编程(一): (278条消息) GUI 图形用户界面编程(一)_am_student的博客-CSDN博客

📣GUI 图形用户界面编程(二):

(278条消息) GUI 图形用户界面编程(二)经典案例_am_student的博客-CSDN博客

📣GUI 图形用户界面编程(三):

(278条消息) GUI 图形用户界面编程(三)基本框架与Label的使用_am_student的博客-CSDN博客

📣GUI 图形用户界面编程(四):

 (278条消息) GUI 图形用户界面编程(四)-Button组件_am_student的博客-CSDN博客

  • 21
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值