您的位置:首页 > 编程语言 > Python开发

python的tkinter模块创建菜单需要先实例化菜单

2018-03-08 10:27 399 查看
今日再看21天学通python这本书,在做第二十章的例子的时候,发现没有出现菜单栏。本来的源代码如下:
#coding:utf-8
#file:findfat1.py

import tkinter
import tkinter.messagebox

class Windows:
    def __init__(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.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__":
    windows=Windows()

    windows.MainLoop()
结果如下:



检查后发现没有实例化菜单,解决后代码如下:
#coding:utf-8
#file:findfat1.py

import tkinter
import tkinter.messagebox

class Windows:
    def __init__(self):
        self.root=tkinter.Tk()
        
        #创建菜单
        menu=tkinter.Menu(self.root)
        self.root.config(menu=menu)
        
        #创建“系统”子菜单
        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.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__":
    windows=Windows()
    windows.MainLoop()

结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python tkinter