嗨,我是python的新手,无法弄清楚为什么错误'AttributeError:'Program'对象没有属性'frame'发生了。 这是代码:
from tkinter import *
class Program():
def __init__(self, master):
frame = Frame(master, bg='ghostwhite')
frame.pack(fill=BOTH, expand=1)
#menu
self.menu = Menu(frame)
self.frame.config(menu = self.menu)
self.select = Menu(self.menu)
self.menu.add_cascade(label = 'Select', menu = self.new)
self.select.add_command(label = 'Select all', command = self.new)
def new():
print ('newfile')
root = Tk()
program = Program(root)
w = 800
h = 500
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
root.geometry('%dx%d+%d+%d' % (w, h, x, y))
root.title('Cafe Au Lait')
root.mainloop()
在此先感谢您的帮助!
答案 0 :(得分:0)
这里:
self.frame.config(menu = self.menu)
您正在尝试访问不存在的self.frame
属性-此时您所拥有的只是frame
局部变量。
如果出于其他需要需要保留对frame
的引用,请首先将其设为属性:
def __init__(self, master):
self.frame = Frame(master, bg='ghostwhite')
self.frame.pack(fill=BOTH, expand=1)
self.menu = Menu(self.frame)
# etc
否则,只需将self.frame.config(menu=self.menu)
替换为frame.config(menu=self.menu)