命令 (MEL/Python)
|
MGPickerItem
|
跳转到:概要. MEL例子. Python例子.
概要
MGPickerItem (itemIdString, [attributeIconOption=string], [attributeIcons=string], [applyMirroredAttribute=boolean], [annotation=string], [addSelectMember=string], [attributeType=string], [attribute=string], [attributeValue=float], [bgHorizontalAlign=string], [backgroundImage=string], [bgKeepRatio=boolean], [bgMargin=[int, int, int, int]], [boolState=[boolean]], [backgroundSVGElement=[string]], [bgScaleFit=boolean], [bevel=boolean], [bgVerticalAlign=string], [command=string], [closeCurve=boolean], [children=UnsignedInt], [clearSelectMembers=boolean], [commandType=string], [componentWidth=int], [componentWidthPolicy=string], [drawBGRect=boolean], [drawBackgroundShape=boolean], [eval=UnsignedInt], [exist=boolean], [fillColor=[float, float, float, float]], [flipImageHorizontally=boolean], [forceImageMargin=boolean], [flipImageVertically=boolean], [frameColor=[float, float, float, float]], [frameVisible=boolean], [fullNamespace=boolean], [floatState=float], [gradient=boolean], [gradientMode=int], [height=int], [highlightImage=string], [hoverLightness=int], [highlighted=boolean], [highlightSvgElement=string], [hoverSvgElement=string], [hoverImage=string],[image=string], [interactive=boolean], [imageKeepRatio=boolean], [imageMargin=[int, int, int, int]], [intState=[int]], [imageScaleFit=[boolean]], [label=string], [labelBold=boolean], [labelColor=[float, float, float, float]], [labelFont=string], [labelFontSize=int], [labelHorizontalAlign=string], [labelItalic=boolean], [links=boolean], [leftMenuPolicy=string], [labelPosition=string], [leftSlope=int], [labelVerticalAlign=string], [masterButtons=boolean], [mirror=string],[name=string], [opacity=float], [parent=string], [postAction=string], [panelContentPadding=boolean], [pressedImage=string], [postChangeCommand=string], [postChangeCommandReasons=int], [postChangeCommandType=string], [preChangeCommand=string], [preChangeCommandReasons=int], [preChangeCommandType=string], [pressedSvgElement=string], [queryObjects=boolean], [rotation=int], [roundness=int], [rightMenuPolicy=string], [resizePreferSize=boolean], [removeSelectMember=string], [rightSlope=int], [shape=boolean], [slaveButtons=boolean], [strokeColor=[float, float, float, float]], [sliderChangeCommand=string], [sliderChangeReasons=int], [sliderChangeCommandType=string], [shapeDirection=string], [svgElement=string], [select=int], [sliderHandle=boolean], [sliderHAttribute=string],[sliderHMin=float], [sliderHRange=boolean], [sliderHSpeed=float], [sliderHValue=float], [sliderHMax=float],[showItemTip=string], [slider=boolean], [selectMembers=string],[subNamespaceSeparator=string], [subNamespace=string],[stringState=string], [supportShapeTypes=boolean], [strictClick=boolean], [sliderUseHAttribute=boolean], [sliderUseVAttribute=boolean], [sliderVAttribute=string], [sliderVMin=float], [sliderVRange=boolean], [sliderVSpeed=float], [sliderVValue=float], [sliderVMax=float], [strokeWidth=int], [type=string], [useAutoAnnotation=string], [usePickerNamespace=boolean], [view=string], [viewAnchor=string], [valueColor=[float, float, float, float]], [visible=boolean], [viewMargin=[int, int, int, int]], [visibilityOperator=string],[viewStretch=boolean], [width=int], [widgetMargins=[int, int, int, int]], widgetStretchPolicy=string],[xPosition=int], [yPosition=int], [zValue=boolean])
MGPickerItem不可撤消, 可以查询且可以编辑。
这个命令创建, 查询或编辑一个picker对象,目前来讲picker对象包括选择按钮,命令按钮,属性按钮,滑条,文本及Picker面板。
如果这个picker对象不在当前激活视图里,则要指定-view及那个picker视图的id字符窜。
有些命令标签只对特别的picker对象类型有效,不过即使你用在不支持的类型也没有关系,只是不会有效果。
长名 (短名)
|
参数类型
|
属性
|
-attributeIconOption(-aio)
|
string
|
  
|
|
使用控件形状的属性按钮的图标相关选项,比如"IconMode=2,IconWithValue=0,IconInMenu=1";
IconMode选项: 0=只显示图标, 1=在下拉框中显示图标, 2=只显示下拉框,这个选项只针对使用按件形状的枚举属性按钮有效。
IconWithValue及IconInMenu是布尔值,只有0或1两个值。
|
|
-attributeIcons(-ais)
|
string
|
  
|
|
查询或编辑控件形状的属性按钮使用的图标.
例子: "path/to/icon.svg,elementId1,path/to/another.png,"
注意格式是"图片路径,元素ID,...", 用","分隔。
元素ID只针对SVG矢量图形文件,但即使是位图,元素ID留空,但还是需要多一个逗号。
|
|
-applyMirroredAttribute(-ann)
|
|

|
|
将各属性值应用到镜像对象。像颜色,形状,大小将被复制,不过有些属性将被镜像,如位置及旋转值将对称,"labelHorizontalAlign"将以 "left" 及 "right" 间相对,等等。如果没有镜像对象,则会警告。
|
|
-annotation(-ann)
|
string
|
  
|
|
对象的鼠标经过提示,在鼠标悬停在该对象上是时将自动显示这段文本。
|
|
-addSelectMember(-asm)
|
string
|
  
|
|
-attributeType(-atp)
|
|
  
|
|
只对属性按钮有效。在查询模式返回属性按钮的属性类型,可能的数值有"bool","enum","maya",分别代表该属性按钮是布尔类型的属性按钮,枚举类型的属性按钮,或Maya属性按钮。
在创建或编辑模式,这个标签改变属性按钮的属性类型。
在创建一个属性按钮时,如果该标签没有被指定,则默认创建一个布尔类型的属性按钮,该按钮没有控制任何Maya属性,只能用于控制其它picker对象的可见性。
|
|
-attribute(-att)
|
string
|
  
|
|
只对属性按钮有效。在查询模式,如果是Maya属性按钮则返回它控制的Maya属性(节点名.属性), 如果不是则返回空字符窜。
在创建或编辑模式,对于Maya属性按钮,您需要指定节点名.属性为参数来指定要控制的Maya属性,如果是枚举类型的属性按钮,则指定一个由各个枚举数值用":"连接起来的字符窜,来指定枚举类型所有的可能值。对于布尔类型的属性按钮,这个标签没有意义,因为布尔类型的属性总是只有两种数值:"on/off"。
|
|
-attributeValue(-atv)
|
|
  
|
|
只对属性按钮有效。询模式返回属性按钮的当前属性值,在创建或编辑模式则编辑当前的属性值。
|
|
-bgHorizontalAlign(-bha)
|
string
|
  
|
|
只对picker面板有效。面板背景图的水平对齐方式,可用的数值有 "center", "left", "right"。
|
|
-backgroundImage(-bi)
|
string
|
  
|
|
-bgKeepRatio(-bkr)
|
boolean
|
  
|
|
只对picker面板有效。当背景图为适应面板大小而缩放自己时,是否保持长宽比。
|
|
-bgMargin(-bmg)
|
int int int int
|
  
|
|
只对picker面板有效。背景图距离左右上下面板边缘的距离。
取决于由-bgHorizontalAlign/-bha及-bgVerticalAlign/-bva指定的当前背景图水平及垂直对齐方式,可能只有0~3个方向上的距离起作用。
|
|
-boolState(-bs)
|
boolean
|
  
|
|
只是用来编程辅助,用来在picker对象内保存一个布尔状态值。
通常用来保存命令按钮的状态值,这样点击按钮切到另一个状态。
布尔/浮点数/整数/字符窜的状态值设置是无法撤消的,但它们可以被保存在Picker文件/节点内。
|
|
-backgroundSVGElement(-bse)
|
string
|
  
|
|
查询和编辑当前组或面板的背景SVG图片的元素ID。
|
|
-bgScaleFit(-bsf)
|
boolean
|
  
|
|
只对picker面板有效。背景是否要自动缩放自己以适应面板大小。
|
|
-bevel(-bv)
|
boolean
|
  
|
|
-bgVerticalAlign(-bva)
|
string
|
  
|
|
只对picker面板有效。面板背景图的垂直对齐方式,可用的数值有"center", "top", "bottom"。
|
|
-command(-c)
|
script
|
  
|
|
只对命令按钮有效。在按钮被按下并释放时执行的mel/python代码。
|
|
-closeCurve(-ccv)
|
boolean
|
  
|
|
只对带贝塞尔曲线形状的picker对象有效。 决定贝塞尔曲线形状是否自动闭合。
|
|
-children(-chd)
|
UnsignedInt
|

|
|
仅用来查询该Picker对象的子对象ID. 0代表仅返回直接子对象,1代表所有子孙对象。
|
|
-clearSelectMembers(-csm)
|
|
 
|
|
-commandType(-ct)
|
|
  
|
|
只对命令按钮有效。设置命令的语言类型,可用的数值有"mel", "python"。
|
|
-componentWidth(-cw)
|
int
|
  
|
|
只对属性按钮有效。设置和查询按钮数值框的宽度。只有数值框宽度策略(componentWidthPolicy)被设为"fixed"时,这个componentWidth才起作用。
|
|
-componentWidthPolicy(-cwp)
|
string
|
  
|
|
只对属性按钮有效。设置和查询属性按钮数值框的宽度策略,可用的值有"stretch" 和 "fixed",默认为"stretch",即数值框的宽度可伸缩,来确保旁边的文本标签完全显示。如果设为"fixed", 则数值框宽度变得固定,比如你垂直排列很多属性按钮,并希望它们的数值框左侧也对齐(像Maya通道栏那样),则可以将这些属性按钮的宽度策略都设为"fixed",然后将它们的componentWidth都设置成一样的值。
|
|
-drawBGRect(-dbr)
|
boolean
|
  
|
|
只对文本对象有效。决定文本的背景方形形状是否该被绘制。
|
|
-drawBackgroundShape(-dbs)
|
boolean
|
  
|
|
只对带图片形状的picker对象有效。决定图片背后的形状是否该被绘制。
|
|
-eval(-ev) 
|
UnsignedInt
|
 
|
|
只支持创建或编辑模式下,提取相应的picker对象里的DCC节点或属性并进行相应的操作,通常为选择,所以需要的参数是0~3的整数值作为选择模式:
0 :替换选择,即去选全部,再选择当前picker对象。
1 :加选。
2 :去选
3 :反选
该命令只对部分picker对象类型有效:
对于选择按钮,该标签将在场景里选择相应的节点。
对于命令按钮,该标签将执行其命令。这时指定的参数不起作用。
对于属性按钮,该标签将在场景里选择相应的属性。
对于滑条,该标签将在场景里选择相应的水平垂直属性。
对于其它对象,该标签将不起任何作用。
|
|
-exist(-ex)
|
|
  
|
|
只能用于是查询模式来获取该picker对象是否存在。
|
|
-fillColor(-fc)
|
float float float float
|
  
|
|
对象的填充色,参数分别是取值于[0~1]的红,绿,蓝,alpha 浮点数。
|
|
-flipImageHorizontally(-fih) 
|
boolean
|
  
|
|
水平翻转图片的显示,在你镜像复制按钮时,如果按钮当前使用图片形状则这个数值也会自动翻转。
|
|
-forceImageMargin(-fim) 
|
boolean
|
  
|
|
如果这个值为真,则图像边缘距离无论当前标签的对齐方式如何,都会一直生效。
|
|
-flipImageVertically(-fiv) 
|
boolean
|
  
|
|
-frameColor(-fmc)
|
float float float float
|
  
|
|
只对picker面板及滑条有效。对于面板则是边框及标题栏颜色,对于滑条则是背景滑槽的颜色。
参数分别是取值于 [0~1] 的红,绿,蓝,alpha 浮点数。
|
|
-frameVisible(-fmv)
|
boolean
|
  
|
|
只对picker面板及滑条有效。对于面板则决定边框是否要见,对于滑条来讲,则决定背景滑槽是否可见.
|
|
-fullNamespace(-fns)
|
|

|
|
只能用于查询,且只对选择按钮,命令按钮,属性按钮,滑条有效,用来返回按钮的完整命名空间。
对于这些按钮,它们只记录Maya节点本身的名字而不记录这些节点的命名空间。
实际在选择或控制这些Maya节点时,它所采用的是“picker命名空间:次命名空间:节点名称”,而这个标签就用来返回这个完整的命名空间字符窜。
如果次命名空间为空字符窜,则直接返回当前picker的命名空间。
|
|
-floatState(-fs)
|
float
|
  
|
|
只是用来编程辅助,用来在picker对象内保存一个浮点数数值。
布尔/浮点数/整数/字符窜的状态值设置是无法撤消的,但它们可以被保存在Picker文件/节点内。
|
|
-gradient(-gd)
|
boolean
|
  
|
|
-gradientMode(-gdm)
|
int
|
  
|
|
渐变的方向。取值只能是 0或1.
0代表由上至下渐变,1代表由下至上渐变。
|
|
-height(-h)
|
int
|
  
|
|
-highlightImage(-hi)
|
string
|
  
|
|
只对使用图片形状的选择铵钮有意义。当选择按钮的成员节点在场景有被选择或全部被选择时,该按钮显示的图片。
|
|
-hoverLightness(-hl)
|
int
|
  
|
|
对所有picker类型有效,需要指定-10~10的整数值,负值代表鼠标经过该按钮时,按钮变暗,正值代表变亮。
|
|
-highlighted(-hli)
|
|

|
|
仅限查询,用来获取这个picker对象是否被高亮,0代表没有被高亮,1代表半高亮,2代表全高亮。
目前就选择按钮及滑条手柄支持高亮。
要注意,只有当picker对象所在的picker视图处于当前激活状态下,你才能查询,否则一律返回0。
|
|
-highlightSvgElement(-hse)
|
string
|
  
|
|
-hoverSvgElement(-hve)
|
string
|
  
|
|
-hoverImage(-hvi)
|
string
|
  
|
|
-image(-i)
|
string
|
  
|
|
-interactive(-iac)
|
boolean
|
  
|
|
决定该对象是否应该响应鼠标点击。
文本对象默认就不响应,所以文本对象这个属性默认是关的。
|
|
-imageKeepRatio(-ikr)
|
boolean
|
  
|
|
只对使用图片形状的对象有效。决定图片在缩放时是否保存长宽比。
|
|
-imageMargin(-img)
|
int int int int
|
  
|
|
只对使用图片形状的对象有效。决定图片对于对象左右上下边缘的跨度。
取决于由-labelHorizontalAlign/-lha及-labelVerticalAlign/-lva指定的标签水平及垂直对齐方式,可能只有0~3个方向上的距离起作用。
在v2正式发布版本,你可以使用-forceImageMargin标签来确保这个图像边缘距离不管标签对齐方式而一直生效。
|
|
-intState(-is)
|
int
|
  
|
|
只是用来编程辅助,用来在picker对象内保存一个整数数值。
布尔/浮点数/整数/字符窜的状态值设置是无法撤消的,但它们可以被保存在Picker文件/节点内。
|
|
-imageScaleFit(-isf)
|
boolean
|
  
|
|
只对使用图片形状的对象有效。决定是否缩放图片以适应按钮的尺寸。
|
|
-label(-l)
|
string
|
  
|
|
-labelBold(-lb)
|
boolean
|
  
|
|
-labelColor(-lc)
|
float float float float
|
  
|
|
决定对象的标签颜色。参数分别是取值于 [0~1] 的红,绿,蓝,alpha 浮点数。
|
|
-labelFont(-lf)
|
string
|
  
|
|
-labelFontSize(-lfs)
|
int
|
  
|
|
-labelHorizontalAlign(-lha)
|
string
|
  
|
|
对象标签的水平对齐方式,可用值有 "center", "left", "right"。
|
|
-labelItalic(-li)
|
boolean
|
  
|
|
-links(-lks)
|
|

|
|
这个标签只能用于查询,获取与当前对象相关的所有连接id.
|
|
-leftMenuPolicy(-lmp)
|
string
|
  
|
|
这个标签决定当这个对象没有左键菜单里,是否阻止它底下的对象弹出左键菜单。支持的数值为"blockUnder" 及 "propagateUnder"。
"blockUnder"即阻止下面对象弹出菜单, "propagateUnder"则是允许。群组默认数值是 "propagateUnder", 其它对象默认数值则是"blockUnder"。
|
|
-labelPosition(-lp)
|
string
|
  
|
|
只对滑条有效。决定标签与对象图形的排列布局方式,可用值有 "top", "bottom", "left", "right"。
|
|
-leftSlope(-lsp)
|
int
|
  
|
|
只对采用梯形形状的对象有效,梯形的左边斜度,取值范围是 [-10~10]。
|
|
-labelVerticalAlign(-lva)
|
string
|
  
|
|
对象标签的垂直对齐方式,可用值有 "center", "top", "bottom"。
|
|
-masterButtons(-mbs)
|
|

|
|
这个标签只能用于查询,获取控制当前对象可见性的属性按钮或者父选择按钮.
|
|
-mirror(-mrr)
|
string
|
  
|
|
在查询模式,这个标签返回当前picker对象的镜象对象的id, 如果有。
在创建及编辑模式则将当前picker对象跟指定picker对象组成镜象关系。
|
|
-name(-n)
|
string
|
  
|
|
查询/设置picker对象的名字。
名字属性主要用来避免在picker编程中硬写picker对象的id,这样之后您可以使用"MGPicker -q -getIdFromName name"来基于名字获取id, 以便进一步查询或编辑。
|
|
-opacity(-op)
|
float
|
  
|
|
对象填充色的不透明度。这里可以指定的有效值范围是[0~1]的浮点数,不过在内部实际应用时,会被映射到[0~20]间的整数。
|
|
-parent(-p)
|
string
|
  
|
|
对象的父面板id. 在创建/编辑模式则必须指定一个合法的picker面板id, 指定空字符窜,则是将该picker对象从它的父对象那解除掉父子关系。
|
|
-postAction(-pa)
|
string
|
  
|
|
只对选择按钮有效。决定该按钮被点击后,Maya该自动切换到哪个工具。可用值有 "nothing", "translate", "rotate", "scale"。
|
|
-panelContentPadding(-pcp)
|
|

|
|
仅用于查询群组或面板的内容边缘值,会返回一个数组, 代表[左,上,右,下]的宽度数值。
|
|
-pressedImage(-pi)
|
string
|
  
|
|
只对使用图片形状的对象有效。即对象被鼠标点击时显示的图片。
|
|
-postChangeCommand(-poc)
|
script
|
  
|
|
只对属性按钮有效。即该属性按钮的属性在picker视图内被改变后执行的mel / python代码。
|
|
-postChangeCommandReasons(-poc)
|
int
|
  
|
|
只对属性按钮有效。用来决定属性值改变前是否执行相应代码:
0: 无论如何都不执行。
1: 用户通过picker交互并造成属性值变化前执行。
2: 用户通过Maya场景直接并造成属性值变化并同步到picker前执行。
4: 用户通过自带工具属性中键拖拽造成属性值变化前执行。
8: 用户通过MGPickerItem -e -atv/-attributeValue命令来改变属性值前执行。
16: 用户通过MGPicker里的功能"显示所有被隐藏对象"而改变了属性值前执行。.
31: 无论如何都执行。
这些状态值可以任意组合以设置每个条件的状态。在Python代码里,如果你要设置为picker交互, API 及 属性中键拖拽, 则使用 1|4|8.
|
|
-postChangeCommandType(-pot)
|
string
|
  
|
|
只对属性按钮有效。即该属性按钮的属性在picker视图内被改变后执行的代码类型是mel还是python。
|
|
-preChangeCommandReasons(-prr)
|
int
|
  
|
|
只对属性按钮有效。用来决定属性值改变前是否执行相应代码:
0: 无论如何都不执行。
1: 用户通过picker交互并造成属性值变化后执行。
2: 用户通过Maya场景直接并造成属性值变化并同步到picker后执行。
4: 用户通过自带工具属性中键拖拽造成属性值变化后执行。
8: 用户通过MGPickerItem -e -atv/-attributeValue命令来改变属性值后执行。
16: 用户通过MGPicker里的功能"显示所有被隐藏对象"而改变了属性值后执行。.
31: 无论如何都执行。
这些状态值可以任意组合以设置每个条件的状态。在Python代码里,如果你要设置为picker交互, API 及 属性中键拖拽, 则使用 1|4|8.
|
|
-preChangeCommand(-prc)
|
script
|
  
|
|
只对属性按钮有效。即该属性按钮的属性在picker视图内被改变前执行的mel / python代码。
|
|
-preChangeCommandType(-prt)
|
string
|
  
|
|
只对属性按钮有效。即该属性按钮的属性在picker视图内被改变前执行的代码类型是mel还是python。
|
|
-pressedSvgElement(-pse)
|
string
|
  
|
|
-queryObjects(-qos)
|
|

|
|
只能用来查询该按钮在3D软件里的节点或属性名称,包含命名空间。
该查询将返回选择铵钮节点含命名空间的完整名称,属性按钮的完整节点及属性名,滑条的水平垂直节点及属性名。
|
|
-rotation(-r)
|
int
|
  
|
|
只对采用除多边形及贝塞尔曲线形状外的选择按钮有效。
对象的旋转数值,取值范围是 [-180~180]。
|
|
-roundness(-rd)
|
int
|
  
|
|
只对采用的形状类型支持圆角属性的对象有效。形状圆角程度,取值范围是 [0~100]。
|
|
-rightMenuPolicy(-rmp)
|
string
|
  
|
|
这个标签决定当这个对象没有右键菜单里,是否阻止它底下的对象弹出右键菜单。支持的数值为"blockUnder" 及 "propagateUnder"。
"blockUnder"即阻止下面对象弹出菜单, "propagateUnder"则是允许。群组默认数值是 "propagateUnder", 其它对象默认数值则是"blockUnder"。
|
|
-resizePreferSize(-rps)
|
|
 
|
|
缩放对象到合适大小。如果同时指定了-width/-w或-height/-h这些长宽标签,则这个标签无效。
|
|
-removeSelectMember(-rsm)
|
string
|
  
|
|
只对选择按钮有效。从选择按钮的成员列表中去除掉一个成员节点。可以在一条命令多次使用。
|
|
-rightSlope(-rsp)
|
int
|
  
|
|
只对采用梯形形状的对象有效,梯形的右边斜度,取值范围是 [-10~10]。
|
|
-shape(-s)
|
string
|
  
|
|
picker对象所采用的形状类型,如果您指定一个当前对象类型不支持的形状类型,则这个标签无效。
要用的形状类型目前有 "rectangle", "roundedRectangle", "ellipse", "circle", "triangle", "diamond", "trapezoid", "pentagon", "hexagon", "polygon", "bezier", "image", "widgetControl", "attributeButton", "roundedAttriuteButton", "slider"。
注意不同的Picker对象支持不同范围的形状类型,具体可以查看MG-Picker工作室里属性编辑器的形状类型下拉菜单。
|
|
-slaveButtons(-sbs)
|
|

|
|
这个标签只能用于查询,获取被当前属性按钮控制可见性的Picker对象或者子选择按钮.
|
|
-strokeColor(-sc)
|
float float float float
|
  
|
|
边线的颜色。参数分别是取值于 [0~1] 的红,绿,蓝,alpha 浮点数。
|
|
-sliderChangeReasons(-scr)
|
int
|
  
|
|
只对属滑条有效。用来决定其水平或垂直属性值改变前是否执行相应代码:
0: 无论如何都不执行。
1: 用户通过picker交互并造成属性值变化后执行。
2: 用户通过Maya场景直接并造成属性值变化并同步到picker后执行。
4: 用户通过自带工具属性中键拖拽造成属性值变化后执行。
8: 用户通过MGPickerItem -e -shv/-sliderHValue/-svv/-sliderVValue 命令来改变属性值后执行。
31: 无论如何都执行。
这些状态值可以任意组合以设置每个条件的状态。在Python代码里,如果你要设置为picker交互, API 及 属性中键拖拽, 则使用 1|4|8.
|
|
-sliderChangeCommand(-scc)
|
script
|
  
|
|
只对滑条有效。在滑条控制的属性在picker视图或由属性拖放工作改变时执行的命令。
|
|
-sliderChangeCommandType(-sct)
|
string
|
  
|
|
只对滑条有效。属性改变时执行的命令的类型是mel还是python。
|
|
-shapeDirection(-sd)
|
string
|
  
|
|
只对采用支持方向属性的形状的对象有效。可用值有"top", "bottom", "left", "right"。
|
|
-svgElement(-se) 
|
string
|
  
|
|
-select(-sel)
|
int
|
  
|
|
在编辑模式用来先把picker对象,指定0~3作为选择模式:
0 :替换选择,即去选全部,再选择当前picker对象。
1 :加选。
2 :去选
3 :反选
在查询模式,将返回0或1,代表picker对象目前是否被选择。
|
|
-sliderHandle(-sh)
|
|

|
|
-sliderHAttribute(-sha)
|
string
|
  
|
|
只对滑条有效。由该滑条的滑杠水平位移来控制的属性。 在创建或编辑模式时要指定节点名.属性字符窜。
注意在编辑时,节点及属性需要同时都在当前场景内存在。
|
|
-sliderHMin(-shi)
|
float
|
  
|
|
只对滑条有效。控制滑条水平属性的虚拟最小值。不影响Maya属性的最小值。
|
|
-sliderHRange(-shr)
|
boolean
|
  
|
|
只对滑条有效。控制滑条水平属性是否使用虚拟值范围。
|
|
-sliderHSpeed(-shs)
|
float
|
  
|
|
只对滑条有效。控制滑条水平属性的鼠标交互速度,取值范围是-1~1间的非0浮点数。
|
|
-sliderHValue(-shv)
|
float
|
  
|
|
-sliderHMax(-shx)
|
float
|
  
|
|
只对滑条有效。控制滑条水平属性的虚拟最大值。不影响Maya属性的最大值。
|
|
-showItemTip(-sit)
|
string
|

|
|
用来在该picker对象位置弹出一个泡泡框,显示指定的字符窜。如果指定空字符窜,则显示该picker对象的注释。(MGPickerItem -q -annotation)
如果注释也是空字符窜,则它不会弹出任何东西。
|
|
-slider(-sld)
|
|

|
|
只对滑条手柄有效。仅用来查询滑条手柄对应的滑条ID.
|
|
-selectMembers(-sms)
|
string
|
  
|
|
只对选择按钮有效。设置一个字符窜数组为选择按钮的成员列表。
在查询模式该标签返回成员列表的字符窜数组,在创建或编辑模式必须指定一个有由字符窜数组用空格连接起来的字符窜。
指定空字符窜将清空这个成员列表。
|
|
-subNamespaceSeparator(-snp)
|
string
|
  
|
|
查询或编辑次命名空间的连接字符。点此查看更多关于次命名空间的信息。
|
|
-subNamespace(-sns)
|
string
|
  
|
|
查询/设置picker对象的sub-namespace,即次命名名字。
目前它只对选择按钮,命令按钮,属性按钮及滑条有效。对于picker面板,及文本对象无效。
它主要用来支持基于reference的rigging架构,这种rig内容本身就含有多层的namespace.
点此查看更多关于次命名空间的信息。
|
|
-stringState(-ss)
|
string
|
  
|
|
只是用来编程辅助,用来在picker对象内保存一个字符窜数值。
布尔/浮点数/整数/字符窜的状态值设置是无法撤消的,但它们可以被保存在Picker文件/节点内。
|
|
-strictClick(-stc)
|
|
  
|
|
决定何种情况下命令按钮的命令被点击执行,默认值是假,代表只要你在命令按钮上按下鼠标左键,然后在同一按钮上释放,不管中间是否有鼠标拖拽,命令都将被执行。
如果是真,则代表只有没有拖拽的点击才会触发其命令执行。
|
|
-supportShapeTypes(-sst)
|
|

|
|
-sliderUseHAttribute(-suh)
|
boolean
|
  
|
|
只对滑条有效。用来查询或编辑滑条是否使用其水平方向上的属性。
|
|
-sliderUseVAttribute(-suv)
|
boolean
|
  
|
|
只对滑条有效。用来查询或编辑滑条是否使用其垂直方向上的属性。
|
|
-sliderVAttribute(-sva)
|
string
|
  
|
|
只对滑条有效。由该滑条的滑杠垂直位移来控制的属性。 在创建或编辑模式时要指定节点名.属性字符窜。
注意在编辑时,节点及属性需要同时都在当前场景内存在。
|
|
-sliderVMin(-svi)
|
float
|
  
|
|
只对滑条有效。控制滑条垂直属性的虚拟最小值。不影响Maya属性的最小值。
|
|
-sliderVRange(-svr)
|
float
|
  
|
|
只对滑条有效。控制滑条垂直属性是否使用虚拟值范围。
|
|
-sliderVSpeed(-svs)
|
float
|
  
|
|
只对滑条有效。控制滑条垂直属性的鼠标交互速度,取值范围是-1~1间的非0浮点数。
|
|
-sliderVValue(-svv)
|
float
|
  
|
|
-sliderVMax(-svx)
|
float
|
  
|
|
只对滑条有效。控制滑条垂直属性的虚拟最大值。不影响Maya属性的最大值。
|
|
-strokeWidth(-sw)
|
int
|
  
|
|
边线的宽度。取值范围是 [0~10],宽度为0则意味着无边线。
|
|
-type(-typ)
|
string
|
 
|
|
在查询模式这个标签返回picker对象的类型。
在创建一个picker对象时,必须指定这个标签及一个类型值。
类型值目前有这几种:"selectButton", "commandButton", "attributeButton", "slider", "text", "group", "graphicItem", "panel"。不区分大小写。
如果指定的类型值非法,则报错。注意因为"sliderHandle"类型不能单独创建所以在这边不支持。
|
|
-useAutoAnnotation(-uan)
|
boolean
|
  
|
|
-usePickerNamespace(-upn)
|
boolean
|
  
|
|
这个属性默认为真,在查询模式这个标签返回picker对象是否采用当前picker的命名空间。
下面是表格解释了在不同情况下,当用户点击一个选择按钮时最终被选择的Maya节点名称。同样规则也适用于属性按钮及滑条所控制的Maya属性。
按钮里的节点名称
|
Picker的命名空间
|
按钮的次命名空间
|
按钮是否使用Picker的命名空间
|
最终被选择的Maya节点
|
pCube
|
pickerNS
|
|
Yes
|
pickerNS:pCube
|
pCube
|
pickerNS
|
|
No
|
pCube
|
pCube
|
pickerNS
|
subNS
|
Yes
|
pickerNS:subNS:pCube
|
pCube
|
pickerNS
|
subNS
|
No
|
subNS:pCube
|
myChar:pCube
|
pickerNS
|
|
Yes
|
myChar:pCube
|
myChar:pCube
|
pickerNS
|
|
No
|
myChar:pCube
|
myChar:pCube
|
pickerNS
|
subNS
|
Yes
|
myChar:pCube
|
myChar:pCube
|
pickerNS
|
subNS
|
No
|
myChar:pCube
|
|
|
-view(-v)
|
string
|
  
|
|
控制要查询,编辑或创建在哪个picker视图的picker item,在未使用该标签的情况下,默认是在当前激活的picker视图。
该标签需要您指定一个picker视图id字符窜。该id可以通过下方式来获取(具体请查询MGPicker命名参考文档):
MGPicker -q -currentPickerView; // 获取当前所执行的脚本所属于的视图的id,如picker的加载命令和鼠标进入命令。仅脚本执行过程中可获取。
MGPicker -q -activePickerView; // 获取当前激活视图的id.
MGPicker -q -findPickerView "pickerNodeOrFileName" 1 "namespace"; // 通过指定picker节点或文件名来查找特定的picker视图id.
MGPicker -q -listAllPickerViews; // 列出所有打开的picker视图的id.
MGPicker -e -createTempPicker; // 创建一个临时picker视图并返回其id.
MGPicker -e -createPicker "pickerName" "namespace" "filePath" "nodeName"; //创建一个picker视图并返回其id.
MGPicker -e -readPickerNode "nodeName"; // 读取场景picker节点并返回其所打开的picker视图的id.
MGPicker -e -readScenePicker "nodeName" "pickerName" "namespace" "pickerDataString"; // 读取场景picker节点并返回其所打开的picker视图的id.
MGPicker -e -readPickerFile "pickerFilePath" 1; // 读取picker文件并返回其所打开的picker视图的id.
|
|
-viewAnchor(-vac)
|
string
|
  
|
|
控制组或者面板是否固定于视图,对其它类型的对象无效。当组或面板有父组或父面板时,设置该标签不会直接起作用,但它还是会设置属性,直到将该组解除父子关系,变成没有父对象时,该标签就会起作用。
可用的值为 "topLeft", "top", "topRight", "right", "bottomRight", "bottom", "bottomLeft", "left", "center" 及空字符窜。 默认为空字符窜,代表不固定于视图。当你设置任意非空的值时,该组或面板将会忽略视图的缩放和平移等,永远固定在指定的视图角落或中心。同时变得不可移动等。
|
|
-valueColor(-vc)
|
float float float float
|
  
|
|
只对属性按钮及滑条有效。对于属性按钮来讲,这是属性值文字的颜色,对于滑条来讲,这是当前滑框偏离默认位置而形状的方形的颜色。
参数分别是取值于 [0~1] 的红,绿,蓝,alpha 浮点数。
|
|
-visible(-vis)
|
boolean
|
  
|
|
-viewMargin(-vmg)
|
int int int int
|
  
|
|
当组或面板被固定于视图,并且没有父组或父面板时,该标签决定面板或组固定时相对于视图边缘的距离。根据不同的固定模式(-viewAnchor),不同的边缘起作用。
|
|
-visibilityOperator(-vis)
|
string
|
  
|
|
可见性操作符,当picker对象被多个属性按钮控制可见性时:
指定 "and" 代表所有属性按钮都必须符合特定值,则该picker对象才可见。
指定 "or" 代表任意一个控制它的属性按钮符合特定值,则该picker对象就可见。
|
|
-viewStretch(-vst) 
|
boolean
|
  
|
|
当组或面板被固定于视图,并且没有父对象时,该标签用来决定组或面板是否根据视图长宽变化而缩放。
根据不同的固定模式(-viewAnchor)则缩放不同的方式,比如 "left"及"right"则会在纵向缩放适应视图高度,"center"则是纵向横向都缩放适应视图长宽,其它模式则是横向缩放适应视图宽度。
|
|
-width(-w)
|
int
|
  
|
|
-widgetMargins(-wms) 
|
int int int int
|
  
|
|
仅作用于使用控件形状的属性按钮,用来指定控件上下左右的偏移值 ,以达到控件变大或变小的效果。
|
|
-widgetStretchPolicy(-wsp)
|
string
|
  
|
|
仅作用于使用控件形状的属性按钮,用来决定控件是否随属性按钮缩放,可用值 为"stretch" 及 "fixed".
|
|
-xPosition(-x)
|
int
|
  
|
|
-yPosition(-y)
|
int
|
  
|
|
-zValue(-z)
|
|
  
|
|
仅用于查底对象的Z数值,即决定对象叠在别对象上面还是下面的数值。
|
|
标签可以在创建模式中使用
|
标签可以在编辑模式中使用
|
标签可以在查询模式中使用
|
标签可以在一条命令中多次使用
|
MEL例子
//create pCube1 if not exists:
if(!`objExists pCube1`)
{
polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1;
}
// create a new picker named "myPicker"
string $viewId = `MGPicker -e -createPicker "myPicker" "wrongNamespace" "" ""`; //it is a untitled picker, not refer to a picker file / node.
MGPickerView -e -namespace "" $viewId; //set the namespace to empty string.
//create picker panel first:
string $panel = `MGPickerItem -view $viewId -type "panel" -label "Panel1" -frameColor .2 .2 .22 1 -x 0 -y 0 -w 400 -h 300`;
//create other items:
string $selButton = `MGPickerItem -view $viewId -type "selectButton" -p $panel
-x 20 -y 20 -w 100 -h 20 -shape "roundedRectangle"
-l "Select Button"
-selectMembers "pCube1"`;
string $commandButton = `MGPickerItem -view $viewId -type "commandButton"
-p $panel
-x 20 -y 50 -w 100 -h 20
-l "Cmd Button"
-c ("print (\"Current button is: \\\"\"+`MGPicker -q -currentItem`+\"\\\".\\n\")")`;
string $slider = `MGPickerItem -view $viewId -type "slider" -p $panel
-sliderHAttribute "pCube1.translateX"
-sliderVAttribute "pCube1.translateY"
-l "pCube:tx-ty"
-x 23 -y 100 -w 100 -h 100`;
string $attributeButton = `MGPickerItem -view $viewId -type "attributeButton"
-attributeType "bool"
-l "Toggle"
-p $panel
-valueColor .1 .5 .5 1
-x 200 -y 35 -w 100 -h 20`;
string $text = `MGPickerItem -view $viewId -p $panel -type "text" -x 200 -y 80 -labelFontSize 11
-l "The attribute button\ncontrols the select-button,\ncommand-button and the slider."
-resizePreferSize`;
//link the visibilities of select-button and command-button to attribute "on":
string $link1 = `MGPickerLink -view $viewId -s $selButton -t $attributeButton -targetValues "on"`;
string $link2 = `MGPickerLink -view $viewId -s $commandButton -t $attributeButton -targetValues "on"`;
string $link3 = `MGPickerLink -view $viewId -s $slider -t $attributeButton -targetValues "on"`;
//turn the value of attribute-button to On to show the buttons:
MGPickerItem -e -view $viewId -attributeValue 1 $attributeButton;
MGPickerView -e -updateSceneBoundary $viewId; //update the scene boundary to show all the picker items.
MGPickerView -e -setClean $viewId; //set the picker we just created clean.
Python例子
from maya import cmds
from mgpicker import mgp
#create pCube1 if not exists:
if not cmds.objExists('pCube1'):
cmds.polyCube (w=1, h=1,d=1,sx=1,sy=1,sz=1,ax=(0,1,0), cuv=4,ch=1)
# create a new picker named "myPicker"
#it is a untitled picker, not refer to a picker file / node.
viewId = mgp.MGPicker (edit=True, createPicker=("myPicker","wrongNamespace","",""))
mgp.MGPickerView(viewId, edit=True, namespace="") #set the namespace to empty string.
#create picker panel first:
panel = mgp.MGPickerItem(view=viewId, type="panel",label="Panel1",frameColor=(.2,.2,.2,1), x=0,y=0,w=400,h=300)
#create other items:
selButton = mgp.MGPickerItem(view=viewId, type="selectButton",p=panel,
x=20,y=20,w=100,h=20,shape="roundedRectangle",
l="Select Button",
selectMembers="pCube1")
commandButton = mgp.MGPickerItem (view=viewId, type="commandButton",
p=panel,
x=20,y=50,w=100,h=20,
l="Cmd Button",
c=("print (\"Current button is: \\\"\"+`MGPicker -q -currentItem`+\"\\\".\\n\")"))
slider = mgp.MGPickerItem(view=viewId, type="slider",p=panel,
sliderHAttribute="pCube1.translateX",
sliderVAttribute="pCube1.translateY",
l="pCube:tx-ty",
x=23,y=100,w=100,h=100)
attributeButton = mgp.MGPickerItem (view=viewId, type="attributeButton",
attributeType="bool",
l="Toggle",
p=panel,
valueColor=(.1,.5,.5,1),
x=200,y=35,w=100,h=20)
text = mgp.MGPickerItem (view=viewId, p=panel, type="text",x=200,y=80,labelFontSize=11,
l="The attribute button\ncontrols the select-button,\ncommand-button and the slider.",
resizePreferSize=True)
#link the visibilities of select-button and command-button to attribute "on":
link1 = mgp.MGPickerLink (view=viewId, s=selButton,t=attributeButton,targetValues="on")
link2 = mgp.MGPickerLink (view=viewId, s=commandButton ,t=attributeButton,targetValues="on")
link3 = mgp.MGPickerLink (view=viewId, s=slider ,t=attributeButton,targetValues="on")
#turn the value of attribute-button to On to show the buttons:
mgp.MGPickerItem (attributeButton, edit=True, view=viewId, attributeValue=1)
mgp.MGPickerView (viewId, edit=True,updateSceneBoundary=True) #update the scene boundary to show all the picker items.
mgp.MGPickerView (viewId, edit=True,setClean=True) #set the picker we just created clean.
|