注册 登录

清河洛

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 参数指定的菜单项的垂直偏移位置


网址导航