python的tkinter编程(四)GUI界面里面使用类进行开发,也就是自定义组件

2020-11-20 14:59:34 浏览数 (1)

之前我们创建的一个组件,放到了窗口里面的代码是

代码语言:javascript复制
btn01 = tk.Button(root)

我们看这个按钮的源码

初始化的时候,有一个属性master 这个的值就是我们创建的窗口的名字,根据源码可以知道,默认是None

由此可见,所有的组件源码都是一个类,里面有很多的方法,现在我们就可以自己开发一个组件,也就是自己创建一个类

自己创建一个组件

代码语言:javascript复制
from tkinter import *
from tkinter import messagebox


class Application(Frame): 自己创建的这个类就是一个组件,这个要继承Frame类

    def __init__(self,master=None):  参数  源码就是这样写,master代表的是父容器
        # Frame是父类,得主动的调用父类 的构造器
        super().__init__(master)   # super() 代表的是父类的定义,而不是父类的对象
        self.master = master
        self.pack()  这个组件的定位
        self.createWidget()  自定义方法,在这个方法里自定义组件


以后就在这个方法里面自定义组件
    def createWidget(self):
#         创建组件
        self.btn01 = Button(self)
        self.btn01["text"] = "点击送花"
        self.btn01.pack()
        self.btn01["command"] = self.songhua

#         创建一个退出按钮
        self.btnquit = Button(self,text = "退出",command = root.destroy)
        self.btnquit.pack()

    def songhua(self):
        messagebox.showinfo("送花","送很多的花")

root = Tk()
root.geometry("400x100 200 300")
root.title("测试")
app = Application(master = root)

root.mainloop()

对于组件的属性的自定义,有两种方法,以下是两种方法,自己看的选择

代码语言:javascript复制
   创建组件
        self.btn01 = Button(self)
        self.btn01["text"] = "点击送花"
        self.btn01.pack()
        self.btn01["command"] = self.songhua

#         创建一个退出按钮
        self.btnquit = Button(self,text = "退出",command = root.destroy)
        self.btnquit.pack()

总结

就是自定义一个组件,并且使用类的方式开发gui界面。

0 人点赞