代码3

# 导入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):
        # 创建一个标签,并设置其文本、大小、背景色和前景色
        self.label_1 = Label(self, text="我我我我的红花", width=10, height=2, bg="black", fg="white")
        self.label_1.pack()  # 打包标签到Frame

        # 创建另一个标签,并设置更多属性,如字体
        self.label_2 = Label(self, text="我喜欢我花", width=10, height=2, bg="black", fg="white", font=("黑体", 30))
        self.label_2.pack()  # 打包标签到Frame

        # 加载一张图片并创建一个带图片的标签
        global photo  # 声明photo为全局变量,确保图片对象不会在方法结束后被销毁
        photo = PhotoImage(file="image_path")  # 你需要将"image_path"替换为实际的图片路径
        self.label_3 = Label(self, image=photo)
        self.label_3.pack()  # 打包标签到Frame

        # 创建一个带有多行文本和边框的标签
        self.label_4 = Label(self, text="北京尚学堂\n百战程序员\n", borderwidth=1, relief="solid", justify="right")
        self.label_4.pack()  # 打包标签到Frame

        # 创建一个退出按钮,点击时调用root.destroy方法关闭窗口
        # 注意:这里直接使用了外部的root变量,可能不是一个好的OOP实践。更好的做法是通过一个方法或信号来关闭窗口。
        self.btn_quit = Button(self, text="退出", command=root.destroy)
        self.btn_quit.pack()  # 打包按钮到Frame

    # 定义一个方法来显示一个信息框
    def woda(self):
        messagebox.showinfo("我花哎", "送我花一朵小红花")


# 创建一个Tk窗口实例作为根窗口
root = Tk()
root.geometry("400x100+200+300")  # 设置窗口的大小和位置
root.title("Label测试")  # 设置窗口的标题
app = Application(master=root)  # 创建Application类的实例,并将其与根窗口关联起来
root.mainloop()  # 进入Tkinter事件循环,等待用户的交互操作

posted @ 2024-04-29 14:51  thanksDay  阅读(26)  评论(0)    收藏  举报