tkinter菜单笔记=>持续更新

5 篇文章 0 订阅

顶层窗口菜单

基本构建方法

"""
菜单树(子菜单作为子树)
"""
from Tkinter import *      #(python3 是thinter)
top=Menu(win)              #win->top-level window
win.config(menu=top)       #set its menu option,menu and toplevel are interconnect 

file=Menu(top)             #the first menu
file.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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值