tkinter菜单笔记=>持续更新

来源:互联网 发布:淘宝商家可以看到买家 编辑:程序博客网 时间:2024/05/16 14:49

顶层窗口菜单

基本构建方法

"""菜单树(子菜单作为子树)"""from Tkinter import *      #(python3 是thinter)top=Menu(win)              #win->top-level windowwin.config(menu=top)       #set its menu option,menu and toplevel are interconnect file=Menu(top)             #the first menufile.add_command(label='New...',command=notdone,underline=0) #underline:菜单调用的快捷键file.add_command(label='Open',command=notdone,underline=0) file.add_command(label='Quit',command=notdone,underline=0)top.add_cascade(label='File',menu=file,underline=0)          #串行添加菜单edit=Menu(top,tearoff=False)                                 #tearoff->虚分割线edit.add_command(label='Cut',command=notdone,underline=0)edit.add_command(label='Paste',command=notdone,underline=0)edit.add_separator()top.add_cascade(label='Edit',menu=edit,underline=0)          #串行添加菜单submenu=Menu(edit,tearoff=True)                              #添加子菜单submenu.add_command(label='Spam',command=win.quit,underline=0)submenu.add_command(label='Eggs',command=notdone,underline=0)edit.add_cascade(label='Stuff',menu=submenu,underline=0)

基于Frame和MenuButton的菜单

基本构建方法

#与顶层窗口菜单大同小异menubar=Frame(parent)    #母组件menubar.pack()           #菜单框架"""每个菜单都是一个菜单按钮对象"""fbutton=Menubutton(menubar,text='File',underline=0)fbutton.pack()file=Menu(fbutton)file.add_command(label='New...',command=notdone,underline=0)file.add_command(label='Open...',command=notdone,underline=0)file.add_command(label='Quit..',command=notdone,underline=0)fbutton.config(menu=file)ebutton=Menubutton(menubar,text='Edit',underline=0)ebutton.pack(side=LEFT)edit=Menu(ebutton,tearoff=False)edit.add_command(label='Cut',command=notdone,underline=0)edit.add_command(label='Paste',command=notdone,underline=0)edit.add_separator()ebutton.config(menu=edit)submenu=Menu(edit,tearoff=True)    #然而这里依旧是顶层窗口的菜单树submenu.add_command(label='Cut',command=notdone,underline=0)submenu.add_command(label='Paste',command=notdone,underline=0)edit.add_cascade(label='Stuff',menu=submenu,underline=0)

优点:

因为是基于框架的,所以可以作为大型界面的内嵌部件

基于OptionMenu的选择菜单

基本构造方法

root=Tk()var=StringVar()var.set('spam')    #设定初始值opt=OptionMenu(root,var,'spam','eggs','toast')opt.pack(fill=X)#通过var.get()获取初值
0 0
原创粉丝点击