"""测试一个GUI程序的写法,使用面向对象的方式"""
# coding=utf-8
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.btn01 = Button(self, text="点击送花", command=self.songhua,
anchor=CENTER, width=6, height=3)
self.btn01.pack()
# 创建一个退出按钮
self.btnQuit = Button(self, text="退出", command=root.destroy)
self.btnQuit.pack()
def songhua(self):
messagebox.showinfo("送花", "送你99朵玫瑰花")
# 需要调用messagebox组件、“送花”是这个组件的抬头、后面的是内容。
if __name__ == '__main__':
root = Tk()
root.geometry("800x500+300+300")
root.title("一个经典的GUI程序类的测试")
root.update()
app = Application(master=root)
root.mainloop()
"""测试一个经典的GUI程序的写法、用面向对象的方法"""
# coding=utf-8
from tkinter import *
from tkinter import messagebox
class Application(Frame):
"""一个经典的GUI程序的"""
def __init__(self,master = None):
super().__init__(master)
self.master = master
self.createWidget()
def createWidget(self):
self.btn01 = Button(text="登录",command=self.login,width=6)
self.btn01.pack()
def login(self):
messagebox.showinfo("登录","登录成功!")
if __name__ == '__main__':
root = Tk()
root.geometry("600x500+200+200")
root.update()
app = Application(master=root)
root.mainloop()
老师:上面两段代码、第一段代码在构造函数处加了self.pack(),如果不加这个的话、按钮就不显示。
而第二段代码、即便在构造函数处不加self.pack(),也可以运行成功,这是为什么?能帮忙查看一下原因么?