老师:我按书中的程序写了一遍,发现报错,看错误提示是父类(Frame)的属性没有被调用,如下:
# encoding: utf-8
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self,master=None):
super().__init__(self,master)
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.btnQuite = Button(self,text="退出", command=root.destroy)
self.btnQuite.pack()
def songhua(self):
messagebox.showinfo("送花", "送你99朵玫瑰花")
if __name__ == "__main__":
root = Tk()
root.title("经典的app程序")
root.geometry("500x300+100+200")
app = Application(master=root)
root.mainloop()
运行

看到问题提示,我在初始化中将super()该为Frame.问题解决,为什么用super()会出错呢?
# encoding: utf-8
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self,master=None):
Frame.__init__(self,master)
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.btnQuite = Button(self,text="退出", command=root.destroy)
self.btnQuite.pack()
def songhua(self):
messagebox.showinfo("送花", "送你99朵玫瑰花")
if __name__ == "__main__":
root = Tk()
root.title("经典的app程序")
root.geometry("500x300+100+200")
app = Application(master=root)
root.mainloop()
运行
