之前我们创建的一个组件,放到了窗口里面的代码是
代码语言: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界面。