Python GUI tkinter库 自学9

Radiobutton Checkbutton 详解

  • 1、一个经典的面向程序写法模块
  • 2、单选框
    • 2.1、单选组件(Radiobutton)
    • 2.2、单选组件引用的函数
    • 2.3、源代码
  • 3、多选框
    • 3.1、多选组件(Checkbutton)
    • 3.2、单选组件引用的函数
    • 3.3、源代码

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、单选框

2.1、单选组件(Radiobutton)

# class Appication(Frame):
#     """
#     一个经典的 GUI 类的写法
#     """
    def CreateWidget(self):
        """
       用途:创建组件
       """
        self.v = StringVar()
        self.v.set("Female")

        self.r1 = Radiobutton(self, text = "男性", value = "Male", variable = self.v)
        self.r2 = Radiobutton(self, text = "女性", value = "Female", variable = self.v)
        self.r1.pack(side = 'left');self.r2.pack(side = 'left')

        Button(self, text = "确定", command = self.confirm).pack(side = 'left')

2.2、单选组件引用的函数

# class Appication(Frame):
#     """
#     一个经典的 GUI 类的写法
#     """
    def confirm(self):
        messagebox.showinfo("测试", "选择的性别:" + self.v.get())

2.3、源代码

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.v = StringVar()
        self.v.set("Female")

        self.r1 = Radiobutton(self, text = "男性", value = "Male", variable = self.v)
        self.r2 = Radiobutton(self, text = "女性", value = "Female", variable = self.v)
        self.r1.pack(side = 'left');self.r2.pack(side = 'left')

        Button(self, text = "确定", command = self.confirm).pack(side = 'left')

    def confirm(self):
        messagebox.showinfo("测试", "选择的性别:" + self.v.get())


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

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

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

3、多选框

3.1、多选组件(Checkbutton)

# class Appication(Frame):
#     """
#     一个经典的 GUI 类的写法
#     """
    def CreateWidget(self):
        """
        用途:创建组件
        """
        self.codeHobby = IntVar()
        self.dogHobby = IntVar()

        print(self.codeHobby.get()) # 默认值是 0
        self.c1 = Checkbutton(self, text = "代码",
                              variable = self.codeHobby, onvalue = 1, offvalue = 0)
        self.c2 = Checkbutton(self, text = "宠物狗",
                              variable = self.dogHobby, onvalue = 1, offvalue = 0)

        self.c1.pack(side = "left");self.c2.pack(side = "left")

        Button(self, text = "确定", command = self.confirm).pack(side = "left")

3.2、单选组件引用的函数

# class Appication(Frame):
#     """
#     一个经典的 GUI 类的写法
#     """
    def confirm(self):
        if self.codeHobby.get() == 1:
            messagebox.showinfo("测试", "希望你作为程序员继续努力!")
        if self.dogHobby.get() == 1:
            messagebox.showinfo("测试", "希望你能和你的狗狗永远幸福!")

3.3、源代码

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.codeHobby = IntVar()
        self.dogHobby = IntVar()

        print(self.codeHobby.get()) # 默认值是 0
        self.c1 = Checkbutton(self, text = "代码",
                              variable = self.codeHobby, onvalue = 1, offvalue = 0)
        self.c2 = Checkbutton(self, text = "宠物狗",
                              variable = self.dogHobby, onvalue = 1, offvalue = 0)

        self.c1.pack(side = "left");self.c2.pack(side = "left")

        Button(self, text = "确定", command = self.confirm).pack(side = "left")

    def confirm(self):
        if self.codeHobby.get() == 1:
            messagebox.showinfo("测试", "希望你作为程序员继续努力!")
        if self.dogHobby.get() == 1:
            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,库,gui,tkinter,python,小程序)