经典面向对象写法

    本节程序也是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()