# 导入tkinter库,这是一个用于创建图形用户界面(GUI)的Python库
from tkinter import *
# 导入tkinter库中的messagebox模块,用于显示对话框
from tkinter import messagebox
# 定义一个Application类,它继承自tkinter库中的Frame类
class Application(Frame):
"""一个经典的GUI程序的类"""
# 类的初始化方法
def __init__(self, master=None):
# 调用父类的初始化方法,Frame是tkinter中的一个基础组件,用于容纳其他组件
super().__init__(master)
self.master = master # 保存对根窗口的引用
self.pack() # 将Application对象(即Frame)打包到其父组件(这里是根窗口),使其显示
self.create_widget() # 调用方法创建GUI组件
# 定义一个方法来创建GUI的各种组件
def create_widget(self):
# 创建一个按钮,并设置其文本为"我打红花"
self.btn = Button(self) # 初始化一个按钮,但此时还未指定其功能或文本
self.btn["text"] = "我打红花" # 设置按钮的文本
self.btn.pack() # 打包按钮到Frame,使其显示在GUI上
# 为按钮指定点击时触发的功能,即调用self.woda方法
self.btn["command"] = self.woda
# 创建一个退出按钮,点击时调用root.destroy方法关闭窗口
# 注意:这里直接使用了外部的root变量来关闭窗口
self.btn_quit = Button(self, text="退出", command=root.destroy)
self.btn_quit.pack() # 打包退出按钮到Frame,使其显示在GUI上
# 定义一个方法来显示一个信息框
def woda(self):
messagebox.showinfo("我花哎", "送我花一朵小红花") # 当用户点击"我打红花"按钮时,弹出一个信息框
# 创建一个Tk窗口实例作为根窗口
root = Tk()
root.geometry("400x100+200+300") # 设置窗口的大小为400x100,并设置其在屏幕上的位置(横坐标+200,纵坐标+300)
root.title("测试") # 设置窗口的标题为"测试"
app = Application(master=root) # 创建Application类的实例,并将其与根窗口关联起来
root.mainloop() # 进入Tkinter事件循环,等待用户的交互操作