tkinter中的Menu菜单组件
qingheluo2020-07-13清河洛275
创建Menu菜单的步骤:1、创建主菜单menu=tkinter.Menu(root)
2、创建主菜单的子菜单项menu1=tkinter.Menu(menu)
3、设置该子菜单的选项
menu1.add(‘command‘,label=‘文字‘,command=func)或者
menu1.add_command(label=‘文字‘,command=func)
4、设置一个菜单显示文字并关联到menu和menu1两个菜单对象
menu.add_cascade(label=‘文字‘,menu=menu1)
5、重复2、3、4三个步骤
6、通过root.config(...
创建Menu菜单的步骤:
1、创建主菜单menu=tkinter.Menu(root) 2、创建主菜单的子菜单项menu1=tkinter.Menu(menu) 3、设置该子菜单的选项 menu1.add(‘command‘,label=‘文字‘,command=func)或者 menu1.add_command(label=‘文字‘,command=func) 4、设置一个菜单显示文字并关联到menu和menu1两个菜单对象 menu.add_cascade(label=‘文字‘,menu=menu1) 5、重复2、3、4三个步骤 6、通过root.config(menu=menu)显示该主菜单
Menu菜单组件的特有属性:
tearoff:是否分窗,为0(或者False)在原窗,为1点击分割线后弹出独立窗口,默认为1 tearoffcommand:当用户分窗时运行的方法,会带着两个参数去调用方法(一个是当前窗口的ID,另一个参数是承载被“撕下”的菜单的窗口 ID) activebackgound:点击时背景色 activeforeground:点击时前景色 activeborderwidth:点击时边框宽 disabledforeground:当Menu处于"disabled"状态时的前景色 postcommand:指定一个方法,当菜单被打开的时候该方法将自动被调用 selectcolor:菜单项被选中时背景 title:分窗情况下的标题,默认是其菜单的名字
Menu菜单组件的方法:
add(type, options)或者add_type(options)两种方法效果完全相同
其中type可能的值:
"cascade" :添加一个父菜单 "command" :添加一个普通的命令菜单项 "checkbutton" :添加一个多选按钮的菜单项 "radiobutton" :添加一个单选按钮的菜单项 "separator" :添加一条分割线
如add("command", options)和add_command(options)两个格式的命令效果完全相同
配置选项options:
选项 | 含义 |
accelerator | 显示该菜单项的快捷键(仅显示) 如 accelerator = "Ctrl+N" |
columnbreak | 从该菜单项开始另起一列显示 |
command | 将该选项与一个方法相关联,当用户点击该菜单项时将自动调用此方法 |
hidemargin | 是否显示菜单项旁边的空白 |
label | 指定菜单项显示的文本 |
menu | 该选项仅在cascade类型的菜单中使用,用于指定它的下级菜单 |
offvalue | 自定义未选中状态的值,默认为0 |
onvalue | 自定义未选中状态的值,默认为1 |
value | 当菜单为单选或复选按钮时,用于标志该按钮的值 在同一组中的所有按钮应该拥有各不相同的值 通过将该值与 variable 选项的值对比,即可判断用户选中了哪个按钮 |
variable | 当菜单项是单选按钮或多选按钮时,与之关联的变量 |
其他方法:
delete(index1, index2=None) 删除index1至index2之间(包含index1和index2)的所有菜单项,如果index2为None,则删除index1指向的菜单项 注意:对于一个分窗的菜单,你无法使用该方法 entrycget(index, option):获得指定菜单项的某选项的值 entryconfig(index, **options)或entryconfigure(index, **options):设置指定菜单项的选项 index(index):返回与index参数相应的选项的序号(例如 e.index("end")) insert(index, itemType, **options): 添加一个菜单项,itemType指定添加的菜单类型,可以是:"command","cascade","checkbutton","radiobutton" 或 "separator" insert_cascade(index, **options):在index参数指定的位置添加一个父菜单 insert_checkbutton(index, **options):在 index 参数指定的位置添加一个多选按钮 insert_command(index, **options):在 index 参数指定的位置添加一个普通的命令菜单项 insert_radiobutton(index, **options):在 index 参数指定的位置添加一个单选按钮 insert_separator(index, **options):在 index 参数指定的位置添加一条分割线 invoke(index) 调用index指定的菜单项相关联的方法 如果是单选按钮,设置该菜单项为选中状态 如果是多选按钮,切换该菜单项的选中状态 post(x, y):在指定的位置显示弹出菜单 type(index):获得 index 参数指定菜单项的类型,返回值可以是:"command","cascade","checkbutton","radiobutton" 或 "separator" unpost():移除弹出菜单 yposition(index):返回 index 参数指定的菜单项的垂直偏移位置