MGPickerMenuItem命令
MGPickerMenuItem 不可撤消, 可以查询且可以编辑。
该命令可以创建,查询,编辑子菜单项。在查询和编辑模式下,你需要指定一个合法的菜单项id。在创建模式下,不需要指定,但需要-parent标签指定该菜单项属于哪个菜单。
菜单项的id格式是:
# The 1st menu item in right click menu for "commandButton1"
"commandButton1.rightmenu[0] "
# The 4th subMenu item in 2nd menuitem in left click menu for "selectButton1"
"selectButton1.leftmenu[1][3]"
目前Picker只支持最多一层的子菜单,为避免菜单被设计地太复杂。
跳转到: [MEL例子] [Python例子]
概要
MGPickerMenuItem( addSubMenuItem=(string, string, string, string, string), command=string, commandType=string, divider=boolean, deleteAllSubItems=boolean, dividerLabel=string, exist=boolean, image=string, queryFullImagePath=boolean, insertSubMenuItem=(int, string, string, string, string, string), label=string, longDivider=boolean, numberOfSubItems=boolean, parent=string, radialPosition=string, subItemArray=boolean, subMenu=boolean, subMenuItem=int, view=string, )
MGPickerMenuItem命令 |
|---|
-addSubMenuItem(-asi) string string string string string
|
只能用于编辑模式或创建模式,添加一个子菜单项。 需要指定标签,图标路径,命令语言(
|
-command(-c) string
|
菜单项的命令。 |
-commandType(-ct) string
|
菜单项的命令语言类型: |
-divider(-d) boolean
|
菜单项是否是一个分隔线。 |
-deleteAllSubItems(-dai)
|
删除所有子菜单项。 |
-dividerLabel(-dl) string
|
分隔线标签,只有当菜单项是一个分隔线时才有效 (dividier=True). |
-exist(-ex)
|
查询菜单项是否存在。 |
-image(-i) string
|
菜单项的图标路径。 |
-queryFullImagePath(-ifp)
|
查询图片路径时是否返回完整的绝对路径。 |
-insertSubMenuItem(-isi) int string string string string string
|
只能用于编辑模式或创建模式,在特定索引处插入一个子菜单项。 需要指定索引值,标签,图标路径,命令语言(
|
-label(-l) string
|
菜单项的标签。 |
-longDivider(-ld) boolean
|
是否是长分隔线,只有当菜单项是一个分隔线时才有效 (dividier=True). |
-numberOfSubItems(-nsi)
|
子菜单项的数目。 |
-parent(-p) string
|
在查询模式下返回该菜单所属的picker菜单id或父菜单项的id。在创建模式下,这个标签是必须的,用来指定你要添加到的是哪个picker菜单或父菜单项。 |
-radialPosition(-rp) string
|
菜单项的marking menu方向: |
-subItemArray(-sia)
|
只能用于查询模式, 返回所有子菜单项的id字符窜数组。 |
-subMenu(-sm) boolean
|
该菜单项是否可以成为子菜单项的父菜单。 |
-subMenuItem(-smi) int
|
This is a query only flag, for retrieving the sub menu item id string at specific index. |
-view(-v) string
|
决定你要查询哪个picker视图的菜单。要指定一个合法的视图id。 |
标签可以在创建模式中使用;
标签可以在编辑模式中使用
标签可以在查询模式中使用
标签可以在一条命令中多次使用.
MEL例子
// You must make sure the picker item: commandButton1 is already in scene.
// To form a picker menu id, use pickerItemId.leftmenu / pickerItemId.rightmenu
string $cmdButton = "commandButton1";
//This just retrieves the id "commandButton1.rightmenu" instead of creating it.
string $rightMenu = `MGPickerMenu -p $cmdButton -m "rightmenu"`;
// We get a menu item id via -addMenuItem or -insertMenuItem flag of MGPickerMenu command:
string $menuItem0 = `MGPickerMenu -e
-addMenuItem "First Menu Item" "/path/to/icon0.png" "mel" "print \"It works!\"" "N"
$rightMenu`;
// We can add a menu item using MGPickerMenuItem command:
string $menuItem1 = `MGPickerMenuItem -parent $rightMenu
-label "Second Menu Item"
-image "/path/to/icon1.png"
-commandType "mel"
-command "print \"The MGPickerMenuItem in create mode works !\""
-radialPosition "N"`;
// We can also make a menu item a sub menu:
MGPickerMenuItem -e -subMenu 1 $menuItem0;
// Like we did above, add submenu items:
string $subMenuItem1 = `MGPickerMenuItem -e
-addSubMenuItem "First SubMenu Item" "/path/to/icon.png"
"python" "print 'Sub menu item works!'" ""
$menuItem0`;
// We can also add a sub-menu item using MGPickerMenuItem command:
string $subMenuItem2 = `MGPickerMenuItem -parent $menuItem0
-label "Second SubMenu Item"
-image "/path/to/icon.png"
-commandType "python"
-command "print 'The MGPickerMenuItem in create mode also works for submenu item!'"`;
Python例子
from mgpicker import mgp
# You must make sure the picker item: commandButton1 is already in scene.
# To form a picker menu id, use pickerItemId.leftmenu / pickerItemId.rightmenu
cmdButton = "commandButton1"
# This just retrieves the id "commandButton1.rightmenu" instead of creating it.
rightMenu = mgp.MGPickerMenu(p=cmdButton, mode="rightmenu")
# We get a menu item id via -addMenuItem or -insertMenuItem flag of MGPickerMenu command:
menuItem0 = mgp.MGPickerMenu(
rightMenu,
e=True,
addMenuItem=(
"First Menu Item",
"/path/to/icon0.png",
"mel",
'print "It works!"',
"N",
),
)
# We can add a menu item using MGPickerMenuItem command:
menuItem1 = mgp.MGPickerMenuItem(
parent=rightMenu,
label="Second Menu Item",
image="/path/to/icon1.png",
commandType="mel",
command='print "The MGPickerMenuItem in create mode works !"',
)
# We can also make a menu item a sub menu:
mgp.MGPickerMenuItem(menuItem0, e=True, subMenu=True)
# Like we did above, add submenu items:
subMenuItem1 = mgp.MGPickerMenuItem(
menuItem0,
e=True,
addSubMenuItem=(
"First SubMenu Item",
"/path/to/icon0.png",
"mel",
'print "Sub menu works!"',
"",
),
)
# We can also add a sub-menu item using MGPickerMenuItem command:
subMenuItem2 = mgp.MGPickerMenuItem(
parent=menuItem0,
label="Second SubMenu Item",
image="/path/to/icon.png",
commandType="python",
command="print 'The MGPickerMenuItem in create mode also works for submenu item!'",
)