代码7

"""checkbutton用法"""
# 导入tkinter库,这是一个用于创建图形用户界面(GUI)的Python库
from tkinter import *
# 导入tkinter库中的messagebox模块,用于显示对话框
from tkinter import messagebox


# 定义一个Application类,它继承自tkinter库中的Frame类
class Application(Frame):
    """一个用于创建经典GUI程序的类"""

    # 类的初始化方法
    def __init__(self, master=None):
        # 调用父类的初始化方法,super()代表父类,而不是父类对象
        # 这里是OOP中的多态性的应用,使得我们可以在子类中调用父类的方法
        super().__init__(master)
        self.master = master  # 保存对根窗口的引用
        self.pack()  # 将Frame打包到其父组件(这里是根窗口)
        self.create_widget()  # 调用方法创建GUI组件

    # 定义一个方法来创建GUI的各种组件
    def create_widget(self):
        # 使用IntVar创建一个变量,用于存储复选框的选中状态
        self.code_hobby = IntVar()
        self.video_hobby = IntVar()
        print(self.code_hobby.get())  # 打印初始值,应该是0
        # 创建两个复选框,分别对应不同的爱好
        self.c1 = Checkbutton(root, text="敲代码", variable=self.code_hobby, onvalue=1, offvalue=0)
        self.c2 = Checkbutton(root, text="看视频", variable=self.video_hobby, onvalue=1, offvalue=0)
        # 将复选框放置在窗口的左侧
        self.c1.pack(side="left")
        self.c2.pack(side="left")
        # 创建一个按钮,当点击时会调用confirm方法
        Button(root, text="确定", command=self.confirm).pack(side="left")

    def confirm(self):
        # 当视频爱好的复选框被选中时,弹出一个对话框
        if self.video_hobby.get() == 1:
            messagebox.showinfo("测试", "看视频,都是正常人有的爱好!你喜欢看什么类型?")
        # 当代码爱好的复选框被选中时,弹出另一个对话框
        if self.code_hobby.get() == 1:
            messagebox.showinfo("测试", "抓获野生程序猿一只,赶紧送给他尚学堂的视频充饥")


# 创建一个Tk窗口实例作为根窗口
root = Tk()
# 设置窗口的大小和位置
root.geometry("400x100+200+300")
# 设置窗口的标题
root.title("checkbutton测试")
# 创建Application类的实例,并将其与根窗口关联起来
app = Application(master=root)
# 进入Tkinter事件循环,等待用户的交互操作
root.mainloop()
posted @ 2024-04-29 14:54  thanksDay  阅读(20)  评论(0)    收藏  举报