经典面向对象写法
本节程序也是GUI应用程序的一个主要结构, 采用了面向对象的方式, 更加合理的组织代码
通过类Application组织整个GUI程序, 类Application继承了父类的特性, 通过__init__()初始化窗口中的对象, 通过createWidgets()方法创建窗口中的对象
Frame框架是一个tkinter组件, 表示一个矩形区域. Frame通常作为容器使用, 可以放置其他组件, 从而实现复杂的布局
Practice: 测试一个经典的GUI程序的写法, 使用面向对象的方式
1 # coding:utf-8 2 from tkinter import * 3 from tkinter import messagebox 4 5 6 class Application(Frame): 7 """一个经典的GUI程序类写法""" 8 def __init__(self, master=None): 9 super().__init__(master) # super代表的是父类的定义,而不是父类的对象 10 self.master = master 11 self.pack() 12 13 self.createWidget() 14 15 def createWidget(self): 16 """创建组件""" 17 self.btn01 = Button(self) 18 self.btn01['text'] = "点击送花" 19 self.btn01.pack() 20 self.btn01["command"] = self.songhua 21 self.btnQuit = Button(self, text='退出', command=self.destroy) 22 self.btnQuit.pack() 23 24 def songhua(self): 25 messagebox.showinfo('送花', '送你99朵玫瑰花') 26 27 28 root = Tk() 29 root.geometry("400x100+200+300") 30 root.title('测试') 31 app = Application(master=root) 32 root.mainloop()