Python GUI tkinter库 自学7

Entry StringVar 登录界面设置和功能实现

  • 1、一个经典的面向程序写法模块
  • 2、Entry 单行文本框及 Entry 组件
  • *3、密码框暗文操作
  • 4、用于 CreateWidget 函数的函数
  • 5、源代码

1、一个经典的面向程序写法模块

from tkinter import *
from tkinter import messagebox
# 导入库文件

class Appication(Frame):
    """
    一个经典的 GUI 类的写法
    """
    # 定义类(Appication)、继承于 Frame 框架 (虚拟的矩形框架)
    def __init__(self, master = None):
        # 定义构造函数、并初始化父类为空
        super().__init__(master)
        # 通过 super() 调用父类、并将 master 传进去
        self.master = master
        # 令此类中的 master 等于传入的 window
        self.pack()
        # 布局此窗口

        self.CreateWidget()
        # 调用另一个函数 CreateWidget

    def CreateWidget(self):
        """
        用途:创建组件
        """
        ......
        ......
       

if __name__ == "__main__":
    window = Tk()
    # 创建主窗口
    window.geometry("500x200+200+200")
    window.title('一个经典的GUI程序')
    # 对窗口进行大小、位置及名字设置

    app = Appication(master = window)
    # 调用新创建的类、并进行初始化、将 master = window (主窗口)传递进去

    window.mainloop()
    # 调用 mainloop 方法、启用窗口并进入事件循环

2、Entry 单行文本框及 Entry 组件

Entry 单行文本框

  1. Entry 是用来接收一行字符串的控件
  2. 如果用户输入的文字长度长于 Entry 控件的宽度时,文字会自动向后滚动
  3. 如果想输入多行文本,需要使用 Text 控件
# class Appication(Frame):
#     """
#     一个经典的 GUI 类的写法
#     """
    def CreateWidget(self):
        """
        用途:创建登录界面的组件
        """
        # 创建用户名框
        self.label1 = Label(self, text = "用户名")
        self.label1.pack()

        # StringVar 变量绑定到指定的组件
        # StringVar 变量的值发生变化、组件内容也变化
        # 组件内容发生变化、StringVar 变量的值也发生变化
        v1 = StringVar()
        self.entry1 = Entry(self, textvariable = v1)
        self.entry1.pack()
        v1.set("admin")
        print(v1.get())
        print(self.entry1.get())

        # 创建密码框
        self.label2 = Label(self, text = "密码")
        self.label2.pack()
        v2 = StringVar()
        self.entry2 = Entry(self, textvariable = v2)
        self.entry2.pack()

        Button(self, text = "登录", command = self.login).pack()

*3、密码框暗文操作

# class Appication(Frame):
#     """
#     一个经典的 GUI 类的写法
#     """
    def CreateWidget(self):
        """
        用途:创建登录界面的组件
        """
        # 创建密码框
        self.label2 = Label(self, text = "密码")
        self.label2.pack()
        v2 = StringVar()
        self.entry2 = Entry(self, textvariable = v2, show = "*")
        self.entry2.pack()

        Button(self, text = "登录", command = self.login).pack()

4、用于 CreateWidget 函数的函数

# class Appication(Frame):
#     """
#     一个经典的 GUI 类的写法
#     """
    def login(self):
        # 定义事件函数
        # e 是事件对象
        print("用户名" + self.entry1.get())
        print("密码" + self.entry2.get())
        # 用来验证 StringVar 变量和相关组件值的一致性
        messagebox.showinfo("学习系统", "登录成功!!!欢迎开始学习!!!")

5、源代码

from tkinter import *
from tkinter import messagebox
# 导入库文件


class Appication(Frame):
    """
    一个经典的 GUI 类的写法
    """
    # 定义类(Appication)、继承于 Frame 框架 (虚拟的矩形框架)
    def __init__(self, master = None):
        # 定义构造函数、并初始化父类为空
        super().__init__(master)
        # 通过 super() 调用父类、并将 master 传进去
        self.master = master
        # 令此类中的 master 等于传入的 window
        self.pack()
        # 布局此窗口

        self.CreateWidget()
        # 调用另一个函数 CreateWidget

    def CreateWidget(self):
        """
        用途:创建登录界面的组件
        """
        # 创建用户名框
        self.label1 = Label(self, text = "用户名")
        self.label1.pack()

        # StringVar 变量绑定到指定的组件
        # StringVar 变量的值发生变化、组件内容也变化
        # 组件内容发生变化、StringVar 变量的值也发生变化
        v1 = StringVar()
        self.entry1 = Entry(self, textvariable = v1)
        self.entry1.pack()
        v1.set("admin")
        print(v1.get())
        print(self.entry1.get())

        # 创建密码框
        self.label2 = Label(self, text = "密码")
        self.label2.pack()
        v2 = StringVar()
        self.entry2 = Entry(self, textvariable = v2, show = "*")
        self.entry2.pack()

        Button(self, text = "登录", command = self.login).pack()

    def login(self):
        # 定义事件函数
        # e 是事件对象
        print("用户名" + self.entry1.get())
        print("密码" + self.entry2.get())
        # 用来验证 StringVar 变量和相关组件值的一致性
        messagebox.showinfo("学习系统", "登录成功!!!欢迎开始学习!!!")


if __name__ == "__main__":
    window = Tk()
    # 创建主窗口
    window.geometry("500x200+200+200")
    window.title('一个经典的GUI程序')
    # 对窗口进行大小、位置及名字设置

    app = Appication(master = window)
    # 调用新创建的类、并进行初始化、将 master = window (主窗口)传递进去

    window.mainloop()
    # 调用 mainloop 方法、启用窗口并进入事件循环

你可能感兴趣的:(Python,GUI,tkinter,库,python,GUI,Entry)