Python:Attribute Error: 'Window' object has no attribute 'root'
Python制作GUI界面时出现标题的错误,代码如下:#coding:utf-8#file:findfat1.pyimporttkinterimporttkinter.m...
Python制作GUI界面时出现标题的错误,代码如下:#coding:utf-8
#file:findfat1.py
import tkinter
import tkinter.messagebox
class Window:
def __intit__(self):
self.root = tkinter.Tk()
#创建菜单
menu = tkinter.Menu(self.root)
#创建“系统”子菜单
submenu = tkinter.Menu(menu,tearoff = 0)
submenu.add_command(label="关于...")
submenu.add_separator()
submenu.add_command(label="退出")
menu.add_cascade(label="系统",menu = submenu)
#创建“清理”子菜单
submenu = tkinter.Menu(menu,tearoff = 0)
submenu.add_command(label = "扫描垃圾文件")
submenu.add_command(label = "删除垃圾文件")
menu.add_cascade(label = "清理",menu = submenu)
#创建“查找”子菜单
submenu = tkinter.Menu(menu,tearoff = 0)
submenu.add_command(label = "搜索大文件")
submenu.add_separator()
submenu.add_command(label = "按名称搜索文件")
menu.add_cascade(label="搜索",menu = submenu)
self.root.config(menu = menu)
#创建标签,用于显示状态信息
self.progress = tkinter.Label(self.root,anchor = tkinter.W,text = "状态",bitmap = "hourglass",compound = 'left')
self.progress.place(x = 10,y = 370,width = 480,height = 15)
#创建文本框,显示文件列表
self.flist = tkinter.Text(self.root)
self.flist.place(x = 10,y = 10,width = 480,height = 350)
#为文本框添加滚动条
self.vscroll = tkinter.Scrollbar(self.flist)
self.vscroll.pack(side = 'right',fill = 'y')
self.flist['yscrollcommand'] = self.vscroll.set
self.vscroll['command'] = self.flist.yview
def MainLoop(self):
self.root.title("Findfat")
self.root.minsize(500,400)
self.root.maxsize(500,400)
self.root.mainloop()
if __name__ == "__main__":
window = Window()
window.MainLoop() 展开
#file:findfat1.py
import tkinter
import tkinter.messagebox
class Window:
def __intit__(self):
self.root = tkinter.Tk()
#创建菜单
menu = tkinter.Menu(self.root)
#创建“系统”子菜单
submenu = tkinter.Menu(menu,tearoff = 0)
submenu.add_command(label="关于...")
submenu.add_separator()
submenu.add_command(label="退出")
menu.add_cascade(label="系统",menu = submenu)
#创建“清理”子菜单
submenu = tkinter.Menu(menu,tearoff = 0)
submenu.add_command(label = "扫描垃圾文件")
submenu.add_command(label = "删除垃圾文件")
menu.add_cascade(label = "清理",menu = submenu)
#创建“查找”子菜单
submenu = tkinter.Menu(menu,tearoff = 0)
submenu.add_command(label = "搜索大文件")
submenu.add_separator()
submenu.add_command(label = "按名称搜索文件")
menu.add_cascade(label="搜索",menu = submenu)
self.root.config(menu = menu)
#创建标签,用于显示状态信息
self.progress = tkinter.Label(self.root,anchor = tkinter.W,text = "状态",bitmap = "hourglass",compound = 'left')
self.progress.place(x = 10,y = 370,width = 480,height = 15)
#创建文本框,显示文件列表
self.flist = tkinter.Text(self.root)
self.flist.place(x = 10,y = 10,width = 480,height = 350)
#为文本框添加滚动条
self.vscroll = tkinter.Scrollbar(self.flist)
self.vscroll.pack(side = 'right',fill = 'y')
self.flist['yscrollcommand'] = self.vscroll.set
self.vscroll['command'] = self.flist.yview
def MainLoop(self):
self.root.title("Findfat")
self.root.minsize(500,400)
self.root.maxsize(500,400)
self.root.mainloop()
if __name__ == "__main__":
window = Window()
window.MainLoop() 展开
1个回答
展开全部
你好,你的self.root是在init函数里面才定义的class本身没有root这个成员,你可以将self.root那行删除。
然后在class windows里面增加一个对root的定义
root = tkinter.Tk()
然后在class windows里面增加一个对root的定义
root = tkinter.Tk()
更多追问追答
追问
class Window:
root = tkinter.Tk()
def __intit__(self):
#创建菜单
menu = tkinter.Menu(self.root)
你说的应该是这样的吧?运行是能运行了,但是运行只弹出窗口,并没有显示我添加的菜单
追答
你希望是将菜单全部显示出来对吗?你一共有几个菜单呀?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询