采用面向对象的方式,更加合理的组织代码。
Frame 框架是一个 tkinter 组件,表示一个矩形的区域。Frame 一般作为容器使用,可以放置其他组件,从而实现复杂的布局。
"""
测试一个经典的GUI程序的写法,使用面向对象的方式
"""
from tkinter import *
from tkinter import messagebox
class Application(Frame):
"""一个经典的GUI程序的写法"""
def __init__(self, master=None):
super().__init__(master) # super代表的是父类的定义,而不是父类对象
self.master = master
self.pack()
self.createWidget()
def createWidget(self):
"""创建组件"""
self.bton01 = Button(self)
self.bton01['text'] = '点击有惊喜'
self.bton01.pack()
self.bton01['command'] = self.jingxi
# 创建一个退出按钮
self.btnQuit = Button(self, text='退出', command=root.destroy)
self.btnQuit.pack()
def jingxi(self):
messagebox.showinfo('惊喜', '惊不惊喜,意不意外')
if __name__ == "__main__":
root = Tk()
root.geometry('400x120+200+200')
root.title('一个经典的GUI程序的写法')
app = Application(master=root)
root.mainloop()