Menu 实例
来源:互联网 发布:尺八制作图数据 编辑:程序博客网 时间:2024/06/01 07:44
Menu
需先设置 root.option_add('*tearOff', FALSE)
否则顶部菜单会有老式的虚线
创建过程:
1. menubar = Menu(root)
以主窗口为parent,创建menubar
2. root["menu"] = menubar
指定主窗口的menu属性,为刚创建的menubar
3. menu_file = Menu(menubar)
menubar.add_cascade(menu=menu_file, label='File')
创建一级菜单,添加菜单到menubar
4. menu_file.add_command(label='New', command=newFile)
menu_file.add_checkbutton(label='Check', variable=check, onvalue=1, offvalue=0)
menu_file.add_radiobutton(label='One', variable=radio, value=1)
为菜单添加具体的菜单项
还可用menu_file.add_separator() 添加分割线
其他可用属性
- underline 指定下划线。参数为字符的index(base-0)
- image 指定图片
- compound 指定混合方式
- state 指定状态。可用属性 disabled,normal
.entrycget(0, 'label') 查询属性
.entryconfigure('Close', state=DISABLED) 设置属性
需先设置 root.option_add('*tearOff', FALSE)
否则顶部菜单会有老式的虚线
创建过程:
1. menubar = Menu(root)
以主窗口为parent,创建menubar
2. root["menu"] = menubar
指定主窗口的menu属性,为刚创建的menubar
3. menu_file = Menu(menubar)
menubar.add_cascade(menu=menu_file, label='File')
创建一级菜单,添加菜单到menubar
4. menu_file.add_command(label='New', command=newFile)
menu_file.add_checkbutton(label='Check', variable=check, onvalue=1, offvalue=0)
menu_file.add_radiobutton(label='One', variable=radio, value=1)
为菜单添加具体的菜单项
还可用menu_file.add_separator() 添加分割线
其他可用属性
- underline 指定下划线。参数为字符的index(base-0)
- image 指定图片
- compound 指定混合方式
- state 指定状态。可用属性 disabled,normal
.entrycget(0, 'label') 查询属性
.entryconfigure('Close', state=DISABLED) 设置属性
.entryconfigure(0) 查询配置属性
from tkinter import *'''root = Tk()menu = Menu(root)for i in ('One', 'Two', 'Three'): menu.add_command(label=i)if (root.tk.call('tk', 'windowingsystem')=='aqua'): root.bind('<2>', lambda e: menu.post(e.x_root, e.y_root)) root.bind('<Control-1>', lambda e: menu.post(e.x_root, e.y_root))else: root.bind('<3>', lambda e: menu.post(e.x_root, e.y_root))root.mainloop()'''def newFile(): print("new file")def openFile(*args): print("open file")def closeFile(*args): print("close file")root = Tk()root.title("菜单练习")# 常规配置root.option_add('*tearOff', FALSE)# 创建主菜单menubar = Menu(root)root["menu"] = menubar# 创建一级菜单menu_file = Menu(menubar)menu_edit = Menu(menubar)menu_check = Menu(menubar)menu_radio = Menu(menubar)sysmenu = Menu(menubar,name="system")menubar.add_cascade(menu=menu_file,label="File")menubar.add_cascade(menu=menu_edit,label="Edit")menubar.add_cascade(menu=menu_check,label="Check")menubar.add_cascade(menu=menu_radio,label="Radio")menubar.add_cascade(menu=sysmenu)# 创建二级菜单menu_new = Menu(menu_file)menu_file.add_cascade(menu=menu_new,label="New...")# 增加菜单项目image_python = PhotoImage(file="python.gif")image_java = PhotoImage(file="java.gif")menu_new.add_command(label="Python File", image=image_python, compound="left", command=newFile)menu_new.add_command(label="Java File", image=image_java, compound="left", command=newFile)# 增加分割线menu_file.add_separator()menu_file.add_command(label="Open", command=openFile)menu_file.add_command(label="Close", command=closeFile)menu_edit.add_command(label="Cut", command=newFile)menu_edit.add_command(label="Copy", command=openFile)menu_edit.add_command(label="Paste", command=closeFile, state="disabled")# check菜单项check_one = StringVar()check_two = StringVar()menu_check.add_checkbutton(label="Check One", variable=check_one, onvalue=1, offvalue=0)menu_check.add_checkbutton(label="Check Two", variable=check_two, onvalue=1, offvalue=0)check_one.set(1)# Radio菜单项radio = StringVar()menu_radio.add_radiobutton(label="Item One", variable=radio, value=1)menu_radio.add_radiobutton(label="Item Two", variable=radio, value=2)radio.set(2)# 获取、改变菜单项值# print("label={!r}".format(menu_file.entrycget(2,"label"))) # 获取菜单第二项的label值menu_file.entryconfigure("Close", state=DISABLED)# print("configure={}".format(menu_file.entryconfig(0)))root.mainloop()
0 0
- Menu 实例
- menu介绍与实例
- Struts-Menu简单实例
- Android Menu实例
- Menu 用法实例
- Android Menu(Context Menu,Options Menu,SubMenu)实例
- 实例:Menu控件实现菜单
- android menu 详解及实例
- Menu的实例(多级菜单)
- [Android实例] 天天动听 半透明Menu效果
- Android的menu的使用实例
- Struts-Menu角色权限的实例代码
- Struts-Menu角色权限的实例代码
- Android 实例:简单Menu和Item
- Android中获取Menu的item实例
- Menu
- Menu
- menu
- 避免Android内存泄露
- StoryBoard不使用AutoLayout情况下 按比例快速兼容适配iPhone6/6 Plus教程【原创】
- 如何用matlab画正态分布曲线
- 两个升序表,打印L中那些由P所指定的位置上的元素 java实现
- LCS 解决最长子串(c++代码)
- Menu 实例
- 推荐一个免费的web打印插件
- 插入排序的优化,比较插入同步进行
- android imageview 显示方式设置
- 数据库存储过程
- 网站页面在浏览器中设置样式格式。
- Android实际开发中的bug总结与解决方法(一)
- ubuntu系统下usb转serial的使用
- 各种JS验证和操作