若要使用 Python 模块中定义的回调创建属性控件,请完成以下步骤:
在下面的示例中,floatSlider 控件是由 Python 程序 AEaddFloatSliderModule 创建的,并使用了更改命令 AEaddFloatSliderModuleCB。回调 AEFloatSliderModule 在模块 AEaddFloatSlider.py 中定义。
import maya.cmds as cmds def AEaddFloatSliderModule( plug, sliderLabel, annot ): cmds.rowLayout( nc=2 ) val = cmds.getAttr( plug ) cmds.text( label=sliderLabel ) slider = cmds.floatSlider( annotation=annot, v=val ) def AEaddFloatSliderModuleCB( *args ): val = cmds.floatSlider( slider, q=1, v=1 ) cmds.setAttr( plug, val ) cmds.floatSlider( slider, e=1, cc=AEaddFloatSliderModuleCB ) cmds.setParent( u=1 )
创建模板文件时,将 <description language="cb"> 标记添加到属性声明或视图定义中,以指定 Python 程序的回调。
若要指定 Python 模块 AEaddFloatSlider.py 中的 Python 回调 AEaddFloatSliderModule,声明应为 py.AEaddFloatSlider.AEaddFloadSliderModule。声明采用以下格式: py.<ModuleName>。<ProcedureName>。
若要将上述 Python 模块中定义的自定义滑块控件添加至“白炽度蓝色”(Incandescence Blue)属性,请执行如下操作:
<attribute name='incandescenceB' type='maya.float'> <label>Incandescence Blue</label> <description language="cb">py.AEaddFloatSlider.AEaddFloatSliderModule</description> </attribute>
在“属性编辑器”(Attribute Editor)中访问属性视图时,“白炽度蓝色”(Incandescence Blue)属性会使用自定义的滑块。