小白学tkinter(Menu组件(菜单))
2017-08-15 00:03
405 查看
Menu组件实现顶级菜单、下拉菜单和弹出菜单功能。
方法:1、创建一个菜单实例。2、使用add()方法将菜单和其他子菜单添加进去。
第一个例子:创建顶级菜单和下拉菜单
第二个例子:创建弹出菜单,主要使用post()方法明确的把它显示出来
方法:1、创建一个菜单实例。2、使用add()方法将菜单和其他子菜单添加进去。
第一个例子:创建顶级菜单和下拉菜单
from tkinter import * root = Tk() def callback(): print('我被调用了') #一、创建菜单实例,也是一个顶级菜单 menubar = Menu(root) #创建一个下拉菜单‘文件’,这个菜单是挂在menubar(顶级菜单)上的 #tearoff 是否关闭 '撕开’项目 filemenu = Menu(menubar,tearoff = False) #下边是下拉菜单的具体项目,使用add_command()方法 filemenu.add_command(label = '打开',command = callback) filemenu.add_command(label = '保存',command = callback) #这个是添加‘分割线’方法 filemenu.add_separator() filemenu.add_command(label = '退出',command = root.quit) #我是这么理解的:在顶级菜单中关联‘文件’菜单 #换句话说,就是将上边的下拉列表filemenu添加到顶级菜单中 menubar.add_cascade(label = '文件',menu = filemenu) #这个是‘编辑’菜单,同上 editmenu = Menu(menubar,tearoff = True) editmenu.add_command(label = '复制',command = callback) editmenu.add_command(label = '粘贴',command = callback) editmenu.add_separator() editmenu.add_command(label = '剪切',command = root.quit) menubar.add_cascade(label = '编辑',menu = editmenu) #二、显示菜单 #还可以设置成 root['menu'] = menubar 根窗口的menu属性 是 menubar root.config(menu = menubar) mainloop()
第二个例子:创建弹出菜单,主要使用post()方法明确的把它显示出来
from tkinter import * root = Tk() def callback(): print('我被调用了') #创建一个弹出菜单 menu = Menu(root,tearoff = False) menu.add_command(label = '撤销',command = callback) menu.add_command(label = '重做',command = callback) frame = Frame(root,width = 512,height = 512) frame.pack() def popup(event): menu.post(event.x_root,event.y_root) #绑定鼠标右键 frame.bind('<Button-3>',popup) #此时就不要将root的menu设置为menubar了 #root.config(menu = menubar) mainloop()
还可以添加单选或者多选按钮
from tkinter import * root = Tk() def callback(): print('我被调用了') menubar = Menu(root) #创建checkbutton关联变量 o = IntVar() s = IntVar() e = IntVar() filemenu = Menu(menubar,tearoff = True) filemenu.add_checkbutton(label = '打开',command = callback,variable = o) filemenu.add_checkbutton(label = '保存',command = callback,variable = s) filemenu.add_separator() filemenu.add_checkbutton(label = '退出',command = root.quit,variable = e) menubar.add_cascade(label = '文件',menu = filemenu) #创建radiobutton关联变量 editVar = IntVar() #设置默认选中第一个 editVar.set(1) editmenu = Menu(menubar,tearoff = True) #别忘了设置value editmenu.add_radiobutton(label = '剪切',command = callback,variable = editVar,value = 1) editmenu.add_radiobutton(label = '粘贴',command = callback,variable = editVar,value = 2) editmenu.add_radiobutton(label = '拷贝',command = callback,variable = editVar,value = 3) #关联到顶级菜单 menubar.add_cascade(label ='编辑',menu = editmenu ) root.config(menu = menubar) mainloop()
相关文章推荐
- 转 OFBiz 菜单组件(menu-widget)指引
- 使用菜单组件Menu写一个右键菜单
- 第二百零六节,jQuery EasyUI,Menu(菜单)组件
- 小白学tkinter(Label(标签)组件)
- 小白学tkinter(Spinbox组件)
- Tkinter菜单Menu的使用示例
- 小白学tkinter(Entry组件)
- 鱼c笔记——Python的GUI编程(十):Tkinter的组件Menu、Menubutton和OptionMenu
- 小白学tkinter(Text组件)
- 小白学tkinter(Canvas组件(画布))
- 安卓开发笔记——Menu菜单组件(选项菜单,上下文菜单,子菜单)
- (总结)Swing组件的使用---下拉式菜单(menu),弹出式菜单(JPopupMenu),选项卡窗体(JTabbedPane)
- GUI的常用组件 之笑傲菜单组件 Menu
- 27,树TreePanel及菜单Menu组件应用
- Tkinter之Menu组件用法
- 小白学tkinter(PanedWindow组件 框架结构划分)
- [Tkinter 教程14] menu 菜单
- MenuPilot - 非常棒的开源任务菜单组件 For ASP.Net 2.0
- 小白学tkinter(Toplevel组件(顶级窗口),用于弹窗)
- wxPython--基础组件-Menu菜单样例