attrColorSliderGrp 颜色滑块
创建一个颜色滑块组,包括标签,彩色画布,滑块和按钮。
单击画布将显示颜色编辑器。
如果按钮可见,则允许您将纹理映射到属性。
可以使用-cw / columnWidth,-co / columnOffset,-cat / columnAttach,-cal / columnAlign和-adj / adjustableColumn标志自定义每个控件(即列)的布局。
cmds.window( title='Attr Field Slider Groups' )
objName = cmds.shadingNode('phong', asShader=True)
cmds.columnLayout()
cmds.attrColorSliderGrp( at='%s.color' % objName )
cmds.showWindow()
attrControlGrp 数值滑块
创建最适合指定属性的类型的控件,并将控件与属性相关联。
对控件的任何更改都将导致属性值发生更改,并且对属性值的任何更改都将反映在控件中。
并非所有属性类型都受支持。
cmds.window()
cmds.columnLayout()
cmds.attrControlGrp(attribute='defaultResolution.width')
cmds.showWindow()
attrFieldGrp
创建预打包的标签文本集合,以及两到四个浮点字段。
这些字段将附加到指定的矢量属性,因此任何一个中的更改都将反映在另一个中。
这里创建的字段是表达式字段 - 通常作为浮点字段操作,用户可以键入以字符“ - ”开头的任何表达式。
该字段还有一个由鼠标右键显示的自动菜单。
此菜单的内容根据字段正在监视的属性的状态而变化。
# 创建一个对象和一个包含'attrFieldGrp'的窗口,操纵该对象的位置
object = cmds.sphere()
window = cmds.window(title='attrFieldGrp Example')
cmds.columnLayout()
cmds.attrFieldGrp( attribute='%s.translate' % object[0] )
cmds.showWindow()
attrFieldSliderGrp
创建标签文本,浮点字段和浮动滑块的预打包集合(对于指定了最小值或最大值的值)该组还支持可能字段值的较大次要范围的概念
可以使用-cw / columnWidth,-co / columnOffset,-cat / columnAttach,-cal / columnAlign和-adj / adjustableColumn标志自定义每个控件(即列)的布局。
cmds.window( title='Attr Field Slider Groups' )
objName = cmds.sphere()
cmds.columnLayout()
cmds.attrFieldSliderGrp( min=-10.0, max=10.0, at='%s.tx' % objName[0] )
cmds.showWindow()
attrNavigationControlGrp
创建预打包的标签导航按钮。
该组用于帮助用户管理与特定属性的连接。
可以使用-cw / columnWidth,-co / columnOffset,-cat / columnAttach,-cal / columnAlign和-adj / adjustableColumn标志自定义每个控件(即列)的布局。
newNode = cmds.shadingNode( 'blinn', asShader=True )
newNodeAttr = newNode + '.normalCamera'
cmds.window()
cmds.columnLayout()
cmds.attrNavigationControlGrp( l='bump mapping', at=newNodeAttr )
cmds.showWindow()
[button]
def defaultButtonPush(*args):
print 'Button 1 was pushed.'
cmds.window( width=150 )
cmds.columnLayout( adjustableColumn=True )
cmds.button( label='Button 1', command=defaultButtonPush )
cmds.button( label='Button 2' )
cmds.button( label='Button 3' )
cmds.button( label='Button 4' )
cmds.showWindow()
canvas
创建一个能够显示色样的控件。当用户按下色样时,该控件还可以接受要调用的命令。
cmds.window()
cmds.columnLayout( rowSpacing=5 )
cmds.canvas( rgbValue=(0, 0, 1), width=100, height=20 )
cmds.canvas( hsvValue=(60, 1, 1), width=100, height=20 )
cmds.canvas( rgbValue=(1, 0, 1), width=100, height=20 )
cmds.showWindow()
channelBox
创建一个对活动列表敏感的通道盒。
cmds.window()
cmds.formLayout( 'form' )
cmds.channelBox( 'dave' )
cmds.channelBox( 'cb1', attrRegex='T*', attrColor=(1.0, 1.0, 1.0), attrBgColor=(.27, .27, .27) )
cmds.formLayout( 'form', e=True, af=(('dave', 'top', 0), ('dave', 'left', 0), ('dave', 'right', 0), ('dave', 'bottom', 0)) )
cmds.showWindow()
checkBox 复选框。
window = cmds.window('window', width=150)
cmds.columnLayout( adjustableColumn=True )
cmds.checkBox( label='One' )
cmds.checkBox( label='Two' )
cmds.checkBox( label='Three' )
cmds.checkBox( label='Four' )
cmds.showWindow( window )
checkBoxGrp
在一行中创建一到四个复选框。
他们可以有一个可选的文本标签。
可以使用-cw / columnWidth,-co / columnOffset,-cat / columnAttach,-cal / columnAlign和-adj / adjustableColumn标志自定义每个控件(即列)的布局
exampleWindow = cmds.window()
cmds.columnLayout()
cmds.checkBoxGrp( numberOfCheckBoxes=3, label='Three Buttons', labelArray3=['One', 'Two', 'Three'] )
cmds.checkBoxGrp( numberOfCheckBoxes=4, label='Four Buttons', labelArray4=['I', 'II', 'III', 'IV'] )
cmds.showWindow( exampleWindow )
# 放置一个标签宽度为100像素的复选框和一个复选框
# 宽度为165像素。在此示例中,checkBoxGrp的两列
# 由columnWidth2标志控制的是标签列和复选框column。
# 可以通过控制复选框的水平定位
# 调整第一列的宽度
exampleWindow = cmds.window()
cmds.rowLayout()
cmds.checkBoxGrp(columnWidth2=[100, 165], numberOfCheckBoxes=1, label='A Label', label1='A Checkbox', v1=True)
cmds.showWindow(exampleWindow)
cmdScrollFieldExecuter
用于向Maya发出脚本命令的脚本编辑器执行器控件。
# 这将创建一个带Mel命令执行器的小窗口。
cmds.window()
cmds.columnLayout()
cmds.cmdScrollFieldExecuter(width=200, height=100)
cmds.showWindow()
# 这将创建一个带有Python命令执行器的小窗口。
cmds.window()
cmds.columnLayout()
cmds.cmdScrollFieldExecuter(width=200, height=100, sourceType="python")
cmds.showWindow()
cmdScrollFieldReporter
脚本编辑器记者控件,用于接收和显示已处理命令的历史记录。
cmdShell
创建一个滚动字段,其行为类似于用于输入用户输入的unix shell。
if cmds.window( 'ExampleWindow', exists=True):
cmds.deleteUI( 'ExampleWindow', window=True)
# 创建一个包含cmdShell和几个按钮的窗口。
# 使用表单布局来定位控件。
cmds.window( 'ExampleWindow', widthHeight=(300, 300) )
form = cmds.formLayout()
cmdShell = cmds.cmdShell()
clearButton = cmds.button(label='Clear', command=('cmds.cmdShell(\"' + cmdShell + '\", edit=True, clear=True)' ))
closeButton = cmds.button(label='Close', command=('cmds.deleteUI( "ExampleWindow", window=True )' ) )
# 设置附属物.
cmds.formLayout( form, edit=True,
attachForm=((cmdShell, 'top', 0), (cmdShell, 'left', 0), (cmdShell, 'right', 0), (clearButton, 'left', 0),
(clearButton, 'bottom', 0), (closeButton, 'bottom', 0), (closeButton, 'right', 0)),
attachControl=(cmdShell, 'bottom', 0, clearButton),
attachNone=((clearButton, 'top'), (closeButton, 'top')),
attachPosition=((clearButton, 'right', 0, 50), (closeButton, 'left', 0, 50)))
cmds.showWindow( 'ExampleWindow' )
colorIndexSliderGrp
创建一个颜色滑块组,包括标签,颜色画布和滑块。
可以使用-cw / columnWidth,-co / columnOffset,-cat / columnAttach,-cal / columnAlign和-adj / adjustableColumn标志自定义每个控件(即列)的布局
cmds.window()
cmds.columnLayout()
cmds.colorIndexSliderGrp( label='Select Color', min=0, max=20, value=10 )
cmds.showWindow()
colorInputWidgetGrp
创建一个颜色滑块组,包括标签,彩色画布,RGB和HSV滑块。
单击画布将显示颜色编辑器。
cmds.window( title='Colors' )
cmds.columnLayout()
cmds.colorInputWidgetGrp( label='Color', rgb=(1, 0, 0) )
cmds.showWindow()
colorSliderButtonGrp
使用按钮和符号按钮创建新的颜色滑块组。
此控件主要用于呈现UI。
cmds.window()
cmds.columnLayout()
cmds.colorSliderButtonGrp( label='Label', buttonLabel='Button', rgb=(1, 0, 0), symbolButtonDisplay=True, columnWidth=(5, 30), image='navButtonUnconnected.png' )
cmds.showWindow()
colorSliderGrp
创建一个颜色滑块组,包括标签,颜色画布和滑块。
单击画布将显示颜色编辑器对话框。
cmds.window()
cmds.columnLayout()
cmds.colorSliderGrp( label='Blue', rgb=(0, 0, 1) )
cmds.colorSliderGrp( label='Green', hsv=(120, 1, 1) )
cmds.showWindow()
commandLine
此命令为命令输入/输出创建单行。
左半部分用于输入,右半部分用于输出。
# 创建一个包含命令行的窗口
window = cmds.window('window')
form = cmds.formLayout()
field = cmds.scrollField()
cmdLine = cmds.commandLine()
cmds.commandLine( cmdLine, edit=True, height=25)
cmds.commandLine( cmdLine, edit=True, sourceType="python")
cmds.formLayout( form, edit=True, attachForm=[(cmdLine, 'top', 0), (cmdLine, 'left', 0), (cmdLine, 'right', 0), (field, 'left', 0), (field, 'bottom', 0), (field, 'right', 0)], attachNone=(cmdLine, 'bottom'), attachControl=(field, 'top', 5, cmdLine) )
# 给命令行初始键盘焦点。
cmds.setFocus( cmdLine )
cmds.showWindow( window )
componentBox
创建一个对活动列表敏感的组件框。
它显示活动列表中最后一个节点的某些组件,并提供双向连接以使小组件保持最新。
cmds.window()
cmds.formLayout( 'form' )
cmds.componentBox( 'cbox' )
cmds.formLayout( 'form', e=True, af=(('cbox', 'top', 0), ('cbox', 'left', 0), ('cbox', 'right', 0), ('cbox', 'bottom', 0)) )
cmds.showWindow()
control
此命令允许您编辑或查询任何控件的属性。
falloffCurve
创建用于编辑2D控制曲线的控件。
控件附加到optionVar,用于存储和检索存储在字符串中的编码控制点。
# Create a window with a curve control for an optionVar
#
cmds.window( title='Curve Control For OptionVar' )
cmds.optionVar(stringValueAppend=['falloffCurveOptionVar', '0,1'])
cmds.optionVar(stringValueAppend=['falloffCurveOptionVar', '0.5,1'])
cmds.optionVar(stringValueAppend=['falloffCurveOptionVar', '0.5,0'])
cmds.optionVar(stringValueAppend=['falloffCurveOptionVar', '1,0'])
cmds.columnLayout()
cmds.falloffCurve( 'fCurve', h=200)
cmds.falloffCurve( 'fCurve', e=True, optionVar='falloffCurveOptionVar' )
cmds.showWindow()
# Query for the control vertices' values of the curve.
#
cmds.falloffCurve( 'fCurve', q=True, asString=True )
falloffCurveAttr
创建用于编辑2D控制曲线的控件。
floatField
创建一个仅接受浮点值并受最小值和最大值限制的字段控件。
window = cmds.window()
cmds.columnLayout()
cmds.floatField()
cmds.floatField( editable=False )
cmds.floatField( minValue=-10, maxValue=10, value=0 )
cmds.floatField( minValue=0, maxValue=1, precision=2 )
cmds.floatField( minValue=-1, maxValue=1, precision=4, step=.01 )
cmds.showWindow( window )
floatFieldGrp
创建标签文本和可编辑浮点字段的预打包集合。
标签文本是可选的,可以创建一到四个浮点字段。
window = cmds.window()
cmds.columnLayout()
cmds.floatFieldGrp( numberOfFields=3, label='Scale', extraLabel='cm', value1=0.3, value2=0.5, value3=0.1 )
cmds.showWindow( window )
floatScrollBar
创建一个滚动条控件,它只接受浮点值并受最小值和最大值的约束。
cmds.window()
cmds.columnLayout( adjustableColumn=True )
cmds.floatScrollBar()
cmds.floatScrollBar( min=-100, max=100, value=0, step=1, largeStep=10 )
cmds.showWindow()
floatSlider
创建一个仅接受浮点值的滑块控件,并使用最小值和最大值绑定。
cmds.window()
cmds.columnLayout( adjustableColumn=True )
cmds.floatSlider()
cmds.floatSlider( min=-100, max=100, value=0, step=1 )
cmds.showWindow()
floatSlider2
此命令创建一个包含两个句柄的浮动滑块。
两个手柄布置成使得它们不能彼此穿过,因此当您调整值时,手柄1将始终具有小于或等于手柄2的值。
############ floatSlider2 example #############
#
# First, create one object to control with the slider. We will use one
# slider handle to control the startSweep and the other the endSweep so
# that the sphere can be made to open and close via the handles.
#
cmds.sphere()
# Create a window containing a floatSlider2 (two handled float slider).
# The window also contains two floating-point textfields.
# - Moving the handle updates the associated textfield.
# - Typing a value into a textfield moves the associated handle.
#
cmds.window()
cmds.columnLayout()
ff1 = cmds.floatField()
slider = cmds.floatSlider2()
ff2 = cmds.floatField()
# Hook the slider handles up to drive the textfields. When you move the
# slider handles, the textfields will update to display the
# position of the handle.
#
cmds.floatSlider2( slider, edit=True, positionControl1=ff1, positionControl2=ff2 )
# Set the slider direction (polarity) and upper limit.
#
cmds.floatSlider2( slider, edit=True, polarity=1, max=360 )
# Connect the slider so that the handles drive the sweep angles of
# the NURBS sphere.
#
cmds.floatSlider2(slider, edit=True, cc1='setAttr makeNurbSphere1.endSweep', cc2='setAttr makeNurbSphere1.startSweep' )
# Display the window.
#
cmds.showWindow()
floatSliderButtonGrp
创建一个带有可选按钮和符号按钮的浮动滑块组件。
window = cmds.window()
cmds.columnLayout()
cmds.floatSliderButtonGrp( label='Label', field=True, buttonLabel='Button', symbolButtonDisplay=True, columnWidth=(5, 23), image='cmdWndIcon.xpm' )
cmds.showWindow( window )
floatSliderGrp
创建一个预包装的集合包含一个标签控件文本,一个浮动字段和一个滑块浮动。
# 创建一个带有几个浮动滑块组的窗口。
# 第一个会使用默认限制值,第二个将设置具有的组,一个大于滑块范围的字段范围。
# 尝试输入值大于两个组中的滑块限制。
window = cmds.window(title='floatSliderGrp Example')
cmds.columnLayout()
cmds.floatSliderGrp( label='Group 1', field=True )
cmds.floatSliderGrp( label='Group 2', field=True, minValue=-10.0, maxValue=10.0, fieldMinValue=-100.0, fieldMaxValue=100.0, value=0 )
cmds.showWindow( window )
gradientControl
创建一个控件,显示指定的渐变属性。
# 为profileCurve属性创建一个ramp小部件
cmds.window( title='Gradient Control For Attribute' )
objName = cmds.createNode('polySplitRing')
cmds.columnLayout()
cmds.gradientControl( at='%s.profileCurve' % objName )
cmds.showWindow()
# 要在属性编辑器中添加渐变窗口小部件,请调用AEaddRampControl mel脚本
gradientControlNoAttr
创建用于编辑渐变的控件(2D控制曲线)。控件附加到optionVar,用于存储和检索存储在字符串中的编码渐变控制点。
# 创建一个窗口与梯度控制optionVar
cmds.window( title='Gradient Control For OptionVar' )
cmds.optionVar(stringValueAppend=['falloffCurveOptionVar', '0,1,2'])
cmds.optionVar(stringValueAppend=['falloffCurveOptionVar', '1,0,2'])
cmds.columnLayout()
cmds.gradientControlNoAttr( 'falloffCurve', h=90)
cmds.gradientControlNoAttr( 'falloffCurve', e=True, optionVar='falloffCurveOptionVar' )
cmds.showWindow()
# 查询给定位置的曲线上的值。
cmds.gradientControlNoAttr( 'falloffCurve', q=True, valueAtPoint=0.5 )
helpLine
此命令创建一个帮助行,其中显示工具帮助/提示。
# 创建一个带有菜单栏,一些按钮和帮助的窗口。
# 将一些annontations附加到UI,以便它们出现在帮助热线中
window = cmds.window( menuBar=True )
cmds.menu( label='File' )
cmds.menuItem( label='New', annotation='Help for New' )
cmds.menuItem( label='Open', annotation='Help for Open' )
cmds.menuItem( label='Close', annotation='Help for Close' )
form = cmds.formLayout()
column = cmds.rowLayout(numberOfColumns=4,
columnWidth4=(32, 32, 32, 32),
columnAttach4=('both', 'both', 'both', 'both'))
cmds.button( label='A', height=32, annotation='Help for A' )
cmds.button( label='B', height=32, annotation='Help for B' )
cmds.button( label='C', height=32, annotation='Help for C' )
cmds.button( label='D', height=32, annotation='Help for D' )
cmds.setParent( '..' )
frame = cmds.frameLayout( labelVisible=False )
cmds.helpLine()
cmds.formLayout( form, edit=True,
attachForm=((column, 'top', 0), (column, 'left', 0),
(column, 'right', 0), (frame, 'left', 0),
(frame, 'bottom', 0), (frame, 'right', 0)),
attachNone=((column, 'bottom'), (frame, 'top')) )
cmds.showWindow( window )
hudButton
这个命令创建一个抬头显示器(HUD)按钮控件放置在一个2 d活性叠加平面3 d窗口。
是用来提供实践交互指定的用户脚本。
# 定义一个“你好!”反制程序。此过程将在每次运行输出"Hello! [number]"
# 该号码在每次通话结束时递增
gHelloCount = 0
def HUDButtonHello(*args):
global gHelloCount
print 'Hello!( %i )' % gHelloCount
gHelloCount += 1
# 现在创建我们的按钮。仅在鼠标释放时执行
cmds.hudButton('HUDHelloButton', s=7, b=5, vis=1, l='Button', bw=80, bsh='roundRectangle', rc=HUDButtonHello)
# hudSlider
>这个命令创建一个抬头显示器(HUD)滑块控件放置在一个2 d活性叠加平面3 d窗口。
是用来提供实践交互指定的用户脚本。
```# 定义一个在按下/拖动/释放中执行的过程。
# 此过程将根据给定的HUD滑块的值,显式地将任何选择的转换设置为沿X轴的给定位置。
def translateXSlider(HUD):
# 由于撤销不是自动关闭的,我们必须自己做。
# 在拖动期间,HUD将触发对这个过程的许多调用,因此我们不想淹没撤消队列。
cmds.undoInfo(swf=False)
for object in cmds.ls(sl=True):
if cmds.objectType(object, isType='transform'):
translateX = object + '.tx'
value = cmds.hudSlider(HUD, q=True, v=True)
cmds.setAttr(translateX, value)
# 重新启用撤消队列。
cmds.undoInfo(swf=True)
# 现在创建滑块HUD
cmds.hudSlider('HUDTranslateXSlider',
section=2,
block=5,
visible=1,
label="TranslateX:",
value=0,
type="int",
minValue=-10,
maxValue=10,
labelWidth=80,
valueWidth=50,
sliderLength=100,
sliderIncrement=1,
pressCommand='translateXSlider( "HUDTranslateXSlider" )',
dragCommand='translateXSlider( "HUDTranslateXSlider" )',
releaseCommand='translateXSlider( "HUDTranslateXSlider" )')
hudSliderButton
这个命令创建一个抬头显示器(HUD)滑块按钮控件放置在一个2 d活性叠加平面3 d窗口。
是用来提供实践交互指定的用户脚本。
def translateXSliderButton(HUD):
cmds.undoInfo(swf=True)
selList = cmds.ls(sl=True)
for object in selList:
if cmds.objectType(object, isType='transform'):
cmds.setAttr(object + ".tx", cmds.hudSliderButton(HUD, query=True, v=True))
# Create our slider button. Use lambda to create an "anonymous" function that invokes the
# callback with the desired button name argument.
#
cmds.hudSliderButton('HUDTranslateXSliderButton', s=5, b=5, vis=True, sl='Slider:', value=0, type='int', min=-10,
max=10, slw=50, vw=50, sln=100, si=1, bl='Button', bw=60, bsh='rectangle',
brc=lambda: translateXSliderButton('HUDTranslateXSliderButton'))
iconTextButton
此控件最多支持3个图标图像和4种不同的显示样式。显示的图标图像是最适合当前控件的当前尺寸的图标。
window = cmds.window()
cmds.columnLayout( adjustableColumn=True )
cmds.iconTextButton( style='textOnly', image1='sphere.png', label='sphere' )
cmds.iconTextButton( style='iconOnly', image1='spotlight.png', label='spotlight' )
cmds.iconTextButton( style='iconAndTextHorizontal', image1='cone.png', label='cone' )
cmds.iconTextButton( style='iconAndTextVertical', image1='cube.png', label='cube' )
cmds.showWindow( window )
iconTextCheckBox
此控件最多支持3个图标图像和4种不同的显示样式。显示的图标图像是最适合当前控件的当前尺寸的图标。 此命令创建一个iconTextCheckBox。(多选方式)
window = cmds.window()
cmds.columnLayout( adjustableColumn=True )
cmds.iconTextCheckBox( style='textOnly', image1='sphere.png', label='sphere' )
cmds.iconTextCheckBox( style='iconOnly', image1='spotlight.png', label='spotlight' )
cmds.iconTextCheckBox( style='iconAndTextHorizontal', image1='cone.png', label='cone' )
cmds.iconTextCheckBox( style='iconAndTextVertical', image1='cube.png', label='cube' )
cmds.showWindow( window )
iconTextRadioButton
这个控制支持多达3图标图像和4种不同的显示风格。
图标的图像显示的是最适合的当前大小控制给定当前的风格。
cmds.window( tlc=(100, 400) )
cmds.columnLayout( adj=True )
cmds.iconTextRadioCollection( 'itRadCollection' )
cmds.iconTextRadioButton( st='textOnly', i1='sphere.png', l='sphere' )
cmds.iconTextRadioButton( st='iconOnly', i1='spotlight.png', l='spotlight' )
cmds.iconTextRadioButton( st='iconAndTextHorizontal', i1='cone.png', l='cone' )
cmds.iconTextRadioButton( st='iconAndTextVertical', i1='cube.png', l='cube' )
cmds.showWindow()
iconTextRadioCollection
这对于iconTextRadioButtons命令创建一个集群。
集群将父子关系到当前的默认布局如果没有指定父- p /父标志。
当孩子的布局布局被删除时,他们将被删除。
集群也可能跨越多个窗口如果使用- g /全球标志。
在这种情况下,集群没有父母所以必须显式地删除' deleteUI '命令。
cmds.window( tlc=(100, 400) )
cmds.columnLayout( adj=True )
cmds.iconTextRadioCollection( 'itRadCollection' )
cmds.iconTextRadioButton( st='textOnly', i1='sphere.png', l='sphere' )
cmds.iconTextRadioButton( st='iconOnly', i1='spotlight.png', l='spotlight' )
cmds.iconTextRadioButton( st='iconAndTextHorizontal', i1='cone.png', l='cone' )
cmds.iconTextRadioButton( st='iconAndTextVertical', i1='cube.png', l='cube' )
cmds.showWindow()
iconTextScrollList
此命令创建/编辑/查询文本滚动列表。该列表可以是单选模式,其中仅选择一个时间项,或者可以选择多个项目的多选模式。
cmds.window()
cmds.paneLayout()
cmds.iconTextScrollList(allowMultiSelection=True, append=('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen'), selectItem='six' )
cmds.showWindow()
iconTextStaticLabel
此控件最多支持3个图标图像和4种不同的显示样式。显示的图标图像是最适合当前控件的当前尺寸的图标。 此命令创建一个iconTextStaticLabel。
cmds.window( tlc=(100, 400) )
cmds.columnLayout()
cmds.iconTextStaticLabel( st='textOnly', i1='sphere.png', l='sphere' )
cmds.iconTextStaticLabel( st='iconOnly', i1='spotlight.png', l='spotlight' )
cmds.iconTextStaticLabel( st='iconAndTextHorizontal', i1='cone.png', l='cone' )
cmds.iconTextStaticLabel( st='iconAndTextVertical', i1='cube.png', l='cube' )
cmds.showWindow()
image
此命令为非xpm文件创建静态图像。此命令支持文件纹理节点支持的任何图像文件格式。
# 注意,要使用此示例,您必须用有效图像的完整路径名替换下面的“image”。必须是英文路径
window = cmds.window()
cmds.paneLayout()
cmds.image( image='image' )
cmds.showWindow( window )
intField
创建一个现场控制,只接受整数值和的最小和最大价值。
cmds.window()
cmds.columnLayout()
cmds.intField()
cmds.intField( editable=False )
cmds.intField( minValue=-10, maxValue=10, value=0 )
cmds.intField( minValue=-1000, maxValue=1000, step=10 )
cmds.showWindow()
intFieldGrp
此命令创建标签文本和可编辑整数字段的预打包集合。标签文本是可选的,可以创建一到四个字段。
window = cmds.window()
cmds.columnLayout()
cmds.intFieldGrp( numberOfFields=3, label='Scale', extraLabel='cm', value1=3, value2=5, value3=1 )
cmds.showWindow( window )
intScrollBar
创建一个滚动条控件,只接受整数值和的最小和最大价值。
cmds.columnLayout( adjustableColumn=True )
cmds.intScrollBar()
cmds.intScrollBar( min=-100, max=100, value=0, step=1, largeStep=10 )
cmds.showWindow()
intSlider
创建一个滑块控件,该控件仅接受整数值并受最小值和最大值的约束。
cmds.window()
cmds.columnLayout( adjustableColumn=True )
cmds.intSlider()
cmds.intSlider( min=-100, max=100, value=0, step=1 )
cmds.showWindow()
intSliderGrp
这个命令创建一个预包装的集合包含一个标签控件文本,一个整数字段和一个滑块的整数。
文本和字段控件是可选的。
window = cmds.window( title='intSliderGrp Example' )
cmds.columnLayout()
cmds.intSliderGrp( field=True, label='Group 1' )
cmds.intSliderGrp( field=True, label='Group 2', minValue=-10, maxValue=10, fieldMinValue=-100, fieldMaxValue=100, value=0 )
cmds.showWindow( window )
layerButton
创建一个图层栏按钮部件。
这个小部件包含它是两层的名称和一个色卡,表明它是颜色的任务。
cmds.window()
cmds.columnLayout()
# 为默认图层创建一个按钮,将其着色为红色并选择它
b = cmds.layerButton(name='defaultLayer', cl=(1.0, 0.0, 0.0), s=True)
cmds.showWindow()
# 找出创建时图层按钮的宽度
width = cmds.layerButton(b ,q=True, labelWidth=True )
messageLine
此命令创建一条消息行,其中显示工具反馈
window = cmds.window()
form = cmds.formLayout()
frame = cmds.frameLayout(labelVisible=False)
cmds.messageLine()
cmds.formLayout( form, edit=True, attachNone=(frame, 'top'), attachForm=[(frame, 'left', 0), (frame, 'bottom', 0), (frame, 'right', 0)] )
cmds.showWindow( window )
nameField
此命令创建一个可编辑字段,该字段可链接到Maya对象的名称。该字段将始终显示对象的名称。
# 创建一个窗口包含一个name字段。 将name字段与一个球体。
window = cmds.window('window')
cmds.columnLayout( adjustableColumn=True )
sphereName = cmds.sphere()
field = cmds.nameField(object=sphereName[0])
cmds.showWindow( window )
# 重命名范围和注意,name字段更新
objectName = cmds.nameField(field, query=True, object=True)
cmds.rename( objectName, 'NewName' )
nodeTreeLister
此命令创建/编辑/查询节点树列表器控件。 nodeTreeLister是一个treeLister,但假定项目具有返回依赖项节点名称的命令。支持从结果窗格拖动。
cmds.window(width=200)
cmds.formLayout('theForm')
cmds.nodeTreeLister('theTreeLister')
cmds.formLayout('theForm', e=True,
af=(('theTreeLister', 'top', 0),
('theTreeLister', 'left', 0),
('theTreeLister', 'bottom', 0),
('theTreeLister', 'right', 0)))
cmds.showWindow()
palettePort
此命令创建一个颜色单元格数组。它可用于存储检索您在工作会话期间要管理的某些颜色。
cmds.window()
cmds.frameLayout(labelVisible=0)
# create a palette of 20 columns and 15 rows
cmds.palettePort( 'palette', dim=(20, 15) )
# select cell #30
cmds.palettePort( 'palette', edit=True, scc=30 )
# return RGB value for this cell
cmds.palettePort( 'palette', query=True, rgb=True )
# make cell #100 transparent and blue
cmds.palettePort( 'palette', edit=True, transparent=100, rgb=(100, 0.0, 0.0, 1.0) )
cmds.palettePort( 'palette', edit=True, redraw=True )
# returns the current transparent cell (there can be only one)
cmds.palettePort( 'palette', query=True, transparent=True )
cmds.showWindow()
picture
此命令创建静态图像。
window = cmds.window()
cmds.columnLayout()
cmds.picture( image='sphere.png' )
cmds.showWindow( window )
progressBar
创建一个进度条控件,在其进度值增加时以图形方式填充。
import maya.cmds as cmds
# Create a custom progressBar in a windows ...
window = cmds.window()
cmds.columnLayout()
progressControl = cmds.progressBar(maxValue=10, width=300)
cmds.button( label='Make Progress!', command='cmds.progressBar(progressControl, edit=True, step=1)' )
cmds.showWindow( window )
# Or, to use the progress bar in the main window ...
import maya.mel
gMainProgressBar = maya.mel.eval('$tmp = $gMainProgressBar')
cmds.progressBar( gMainProgressBar,
edit=True,
beginProgress=True,
isInterruptable=True,
status='Example Calculation ...',
maxValue=5000 )
for i in range(5000) :
if cmds.progressBar(gMainProgressBar, query=True, isCancelled=True ) :
break
cmds.progressBar(gMainProgressBar, edit=True, step=1)
cmds.progressBar(gMainProgressBar, edit=True, endProgress=True)
radioButton
如果未使用-cl / collection标志,此命令将创建一个单选按钮,该按钮将添加到最近创建的无线电集合中。
cmds.window( width=150 )
cmds.columnLayout( adjustableColumn=True )
cmds.radioCollection()
cmds.radioButton( label='One' )
cmds.radioButton( label='Two' )
cmds.radioButton( label='Three' )
cmds.radioButton( label='Four' )
cmds.showWindow()
radioButtonGrp
此命令在一行中创建一到四个单选按钮。默认情况下,单选按钮将共享一个集合,但它们也可以共享另一个单选按钮组的集合。按钮还可以具有可选的文本标签。
# Create a window with two separate radio button groups.
#
window = cmds.window()
cmds.columnLayout()
cmds.radioButtonGrp( label='Three Buttons', labelArray3=['One', 'Two', 'Three'], numberOfRadioButtons=3 )
cmds.radioButtonGrp( label='Four Buttons', labelArray4=['I', 'II', 'III', 'IV'], numberOfRadioButtons=4 )
cmds.showWindow( window )
# Create a window with two radio button groups that are
# linked together.
#
window = cmds.window()
cmds.columnLayout()
group1 = cmds.radioButtonGrp( numberOfRadioButtons=3, label='Colors', labelArray3=['Red', 'Blue', 'Green'] )
cmds.radioButtonGrp( numberOfRadioButtons=3, shareCollection=group1, label='', labelArray3=['Yellow', 'Orange', 'Purple'] )
cmds.showWindow( window )
radioCollection
这个命令创建一个单选按钮组。
cmds.window()
cmds.columnLayout( adjustableColumn=True, rowSpacing=10 )
cmds.frameLayout( label='Colors' )
cmds.columnLayout()
collection1 = cmds.radioCollection()
rb1 = cmds.radioButton( label='Red' )
rb2 = cmds.radioButton( label='Blue' )
rb3 = cmds.radioButton( label='Green' )
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.frameLayout( label='Position' )
cmds.columnLayout()
collection2 = cmds.radioCollection()
rb4 = cmds.radioButton( label='Top' )
rb5 = cmds.radioButton( label='Middle' )
rb6 = cmds.radioButton( label='Bottom' )
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.radioCollection( collection1, edit=True, select=rb2 )
cmds.radioCollection( collection2, edit=True, select=rb6 )
cmds.showWindow()
rangeControl
此命令创建用于显示和修改当前播放范围的控件。注意:可能只存在一个主范围控制。用户创建的任何添加范围控件都从属于主范围控件小部件。
cmds.window()
cmds.frameLayout( lv=False )
cmds.playbackOptions( minTime=0, maxTime=30 )
cmds.rangeControl( 'myRangeSlider', minRange=0, maxRange=60 )
cmds.showWindow()
scriptTable
此命令创建/编辑/查询脚本表控件
def edit_cell(row, column, value):
return 1
window = cmds.window(widthHeight=(400, 300))
form = cmds.formLayout()
table = cmds.scriptTable(rows=4, columns=2, label=[(1,"Column 1"), (2,"Column 2")], cellChangedCmd=edit_cell)
addButton = cmds.button(label="Add Row",command="cmds.scriptTable(table, edit=True,insertRow=1)")
deleteButton = cmds.button(label="Delete Row",command="cmds.scriptTable(table, edit=True,deleteRow=1)")
cmds.formLayout(form, edit=True, attachForm=[(table, 'top', 0), (table, 'left', 0), (table, 'right', 0), (addButton, 'left', 0), (addButton, 'bottom', 0), (deleteButton, 'bottom', 0), (deleteButton, 'right', 0)], attachControl=(table, 'bottom', 0, addButton), attachNone=[(addButton, 'top'),(deleteButton, 'top')], attachPosition=[(addButton, 'right', 0, 50), (deleteButton, 'left', 0, 50)] )
cmds.showWindow( window )
# Set and query cells
cmds.scriptTable(table, cellIndex=(1,1), edit=True, cellValue="MyValue")
print cmds.scriptTable(table, cellIndex=(1,1), query=True, cellValue=True)
# Select and query rows, columns and cells
cmds.scriptTable(table, edit=True, selectedRows=[1, 3])
print cmds.scriptTable(table, query=True, selectedRows=True)
cmds.scriptTable(table, edit=True, selectedColumns=[1])
print cmds.scriptTable(table, query=True, selectedColumns=True)
cmds.scriptTable(table, edit=True, selectedCells=[1,2,2,1,3,2,4,1])
print cmds.scriptTable(table, query=True, selectedCells=True)
# Set a filter for the first column
cmds.scriptTable(table, edit=True, columnFilter=(1,"MyValue"))
# Set a filter for all columns
cmds.scriptTable(table, edit=True, columnFilter=(0,"MyValue"))
scrollField
此命令创建一个滚动字段,用于处理多行文本。
cmds.window()
cmds.paneLayout( configuration='horizontal4' )
cmds.scrollField( editable=False, wordWrap=True, text='Non editable with word wrap' )
cmds.scrollField( editable=False, wordWrap=False, text='Non editable with no word wrap' )
cmds.scrollField( editable=True, wordWrap=True, text='Editable with word wrap' )
cmds.scrollField( editable=True, wordWrap=False, text='Editable with no word wrap' )
cmds.showWindow()
separator
此命令以各种绘图样式创建分隔符窗口小部件。
cmds.window()
cmds.rowColumnLayout( numberOfColumns=2, columnAlign=(1, 'right'), columnAttach=(2, 'both', 0), columnWidth=(2, 150) )
cmds.text( label='Default' )
cmds.separator()
cmds.text( label='None' )
cmds.separator( style='none' )
cmds.text( label='Single' )
cmds.separator( style='single' )
cmds.text( label='Etched In' )
cmds.separator( height=40, style='in' )
cmds.text( label='Etched Out' )
cmds.separator( height=40, style='out' )
cmds.setParent( '..' )
cmds.showWindow()
shelfButton
这个控制支持多达3图标图像和4种不同的显示风格。
图标的图像显示的是最适合的当前大小控制给定当前的风格。
window = cmds.window( title = 'shelfButton Example')
tabs = cmds.tabLayout()
shelf = cmds.shelfLayout()
# Create some shelf buttons...
#
# 1. A button that prints a message to the Command Line.
#
cmds.shelfButton( annotation='Print "Hello".', image1='commandButton.png', command='print "Hello\\n"' )
# 2. A button that will create a sphere.
#
cmds.shelfButton( annotation='Create a sphere.', image1='sphere.png', command='cmds.sphere()' )
# 3. A button that will open the Attribute Editor window.
#
cmds.shelfButton(annotation='Show the Attribute Editor.', image1='menuIconWindow.png', command='import maya.mel; maya.mel.eval("openAEWindow")' )
# 4. A button with a label that will create a cone
#
cmds.shelfButton(annotation='Create a cone.', image1='cone.png', command='cmds.cone()', imageOverlayLabel='4th')
# 5. A button with a label and color that will call undo
#
cmds.shelfButton(annotation="Undo last operation.",
image1="undo.png", command="undo", imageOverlayLabel="undo",
overlayLabelColor=(1, .25, .25))
# 6. A button with a label, color and background that will call redo
#
cmds.shelfButton(annotation="Redo last operation.",
image1="redo.png", command="redo", imageOverlayLabel="redo",
overlayLabelColor=(1, 1, .25), overlayLabelBackColor=(.15, .9, .1, .4))
cmds.tabLayout( tabs, edit=True, tabLabel=(shelf, 'Example Shelf') )
cmds.showWindow( window )
soundControl
此命令创建一个控件,用于更改当前时间和刮擦/擦除声音文件。
# To display sound in a soundControl, there must first be a sound
# node in the scene. We'll create one and give it the name "ohNo".
# Note that the argument to the -file flag must be a path to a valid
# soundfile.
#
cmds.sound( file='ohNo.aiff', name='ohNo' )
# Create a sound control (named "soundScrubber")
# and have it display the sound associated with audio node "ohNo".
#
cmds.window()
cmds.frameLayout( lv=False )
cmds.soundControl( 'soundScrubber', width=600, height=45, sound='ohNo', displaySound=True, waveform='both' )
cmds.showWindow()
# Now setup "soundScrubber" to actually scrub with
# mouse drags.
#
pressCmd = "soundControl -e -beginScrub soundScrubber"
releaseCmd = "soundControl -e -endScrub soundScrubber"
cmds.soundControl( 'soundScrubber', e=True, pc=cmds.soundControl('soundScrubber',e=True,beginScrub=True, rc=cmds.sound('soundScrubber',e=True,endScrub=True)))
swatchDisplayPort
此命令将创建一个3dPort,用于显示表示着色节点的样本。 可选参数是3dPort的名称。
cmds.window()
cmds.columnLayout('r')
myShader = cmds.shadingNode('anisotropic', asShader=True)
cmds.swatchDisplayPort('slPP', wh=(256, 256), sn=myShader)
cmds.showWindow()
switchTable
此命令创建/编辑/查询切换表控件。 可选参数是控件的名称。
cmds.window(width=200)
cmds.formLayout('theForm')
cmds.switchTable('theSwitch')
cmds.formLayout('theForm', e=True,
af=(('theSwitch', 'top', 0),
('theSwitch', 'left', 0),
('theSwitch', 'bottom', 0),
('theSwitch', 'right', 0)))
cmds.showWindow()
symbolButton
这个命令创建一个符号按钮。
按钮标志像一个普通按钮,唯一的区别是一个象征按钮显示一个图像,一个文本标签。
命令可以被附加到这个按钮时,将执行按钮被按下。
cmds.window()
cmds.columnLayout()
cmds.symbolButton( image='circle.png' )
cmds.symbolButton( image='sphere.png' )
cmds.symbolButton( image='cube.png' )
cmds.showWindow()
symbolCheckBox
这个命令创建一个复选框象征。
象征复选框包含象素映射是一个简单的控制和状态。命令可以被附加到任何或所有下列事件:当象征复选框打开,关闭,或者只是当状态改变。
cmds.window()
cmds.columnLayout()
cmds.symbolCheckBox( image='circle.png' )
cmds.symbolCheckBox( image='sphere.png' )
cmds.symbolCheckBox( image='cube.png' )
cmds.showWindow()
text
创建一个简单的文本标签控件。
cmds.window( width=150 )
cmds.columnLayout( adjustableColumn=True )
cmds.text( label='Default' )
cmds.text( label='Left', align='left' )
cmds.text( label='Centre', align='center' )
cmds.text( label='Right', align='right' )
cmds.showWindow()
textField
创建文本字段控件。
# Create a window with a some fields for entering text.
#
window = cmds.window()
cmds.rowColumnLayout( numberOfColumns=2, columnAttach=(1, 'right', 0), columnWidth=[(1, 100), (2, 250)] )
cmds.text( label='Name' )
name = cmds.textField()
cmds.text( label='Address' )
address = cmds.textField()
cmds.text( label='Phone Number' )
phoneNumber = cmds.textField()
cmds.text( label='Email' )
email = cmds.textField()
# 如果按下Enter键,则附加命令以将焦点传递到下一个字段。只按回车键将保持焦点在当前字段中。
cmds.textField( name, edit=True, enterCommand=('cmds.setFocus(\"' + address + '\")') )
cmds.textField( address, edit=True, enterCommand=('cmds.setFocus(\"' + phoneNumber + '\")') )
cmds.textField( phoneNumber, edit=True, enterCommand=('cmds.setFocus(\"' + email + '\")') )
cmds.textField( email, edit=True, enterCommand=('cmds.setFocus(\"' + name + '\")') )
cmds.showWindow( window )
textFieldButtonGrp
此命令将向textFieldGrp命令添加一个按钮。
window = cmds.window()
cmds.columnLayout()
cmds.textFieldButtonGrp( label='Label', text='Text', buttonLabel='Button' )
cmds.showWindow( window )
textFieldGrp
此命令创建标签文本和可编辑文本字段的预打包集合。标签文本是可选的。
cmds.window()
cmds.columnLayout()
cmds.textFieldGrp( label='Group 1', text='Editable' )
cmds.textFieldGrp( label='Group 2', text='Non-editable', editable=False )
cmds.showWindow()
textScrollList
此命令创建/编辑/查询文本滚动列表。该列表可以是单选模式,其中仅选择一个时间项,或者在多选模式中可以选择许多项。
cmds.window()
cmds.paneLayout()
cmds.textScrollList( numberOfRows=8, allowMultiSelection=True,
append=['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten',
'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen'],
selectItem='six', showIndexedItem=4 )
cmds.showWindow()
cmds.window()
cmds.paneLayout()
cmds.textScrollList( "myControlObj", allowMultiSelection=True,
append=[ "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.",
"Each problem that I solved became a rule, which served afterwards to solve other problems."],
uniqueTag=["Albert Einstein","Rene Descartes"])
cmds.showWindow()
cmds.textScrollList( "myControlObj", edit=True, selectUniqueTagItem=["Albert Einstein"])
cmds.textScrollList( "myControlObj", query=True, selectUniqueTagItem=True)
cmds.textScrollList( "myControlObj", edit=True, append=["Your theory is crazy, but it's not crazy enough to be true."],
uniqueTag=["Niels Bohr"] )
cmds.textScrollList( "myControlObj", edit=True, selectUniqueTagItem=["Rene Descartes", "Niels Bohr"])
cmds.textScrollList( "myControlObj", query=True, selectUniqueTagItem=True)
timeControl
此命令创建一个控件,可用于更改当前时间,显示/编辑键以及显示/擦除声音。
# To display sound in the time slider, there must first be a sound
# node in the scene. We'll create one and give it the name "ohNo".
# Note that the argument to the -file flag must be a path to a valid
# soundfile.
#
cmds.sound( file='C:/My Documents/maya/projects/default/sound/ohNo.aiff', name='ohNo' )
# To display sound in the time slider, you must specify
# the sound node to display and turn display of sound "on."
# First we need to get the name of the playback slider from
# the global mel variable called gPlayBackSlider
#
import maya.mel
aPlayBackSliderPython = maya.mel.eval('$tmpVar=$gPlayBackSlider')
cmds.timeControl( aPlayBackSliderPython, e=True, sound='ohNo', displaySound=True )
# To hear sound while scrubbing in the time slider, set the press and
# release commands to begin and end sound scrubbing.
#
cmds.timeControl( aPlayBackSliderPython,edit=True,pressCommand='cmds.timeControl(aPlayBackSliderPython,edit=True,beginScrub=True)')
cmds.timeControl( aPlayBackSliderPython,edit=True,releaseCommand='cmds.timeControl(aPlayBackSliderPython,edit=True,endScrub=True)')
timeField
创建仅接受时间值的字段控件。
window = cmds.window()
cmds.columnLayout()
cmds.timeField()
cmds.timeField( editable=False )
cmds.timeField( value=0 )
cmds.timeField( precision=2 )
cmds.timeField( precision=4, step=.01 )
cmds.showWindow( window )
timeFieldGrp
此命令创建标签文本和可编辑时间字段的预打包集合。标签文本是可选的,可以创建一到四个时间字段。
window = cmds.window()
cmds.columnLayout()
cmds.timeFieldGrp( numberOfFields=3, label='Scale', extraLabel='cm', value1=0.3, value2=0.5, value3=0.1 )
cmds.showWindow( window )
timePort
此命令创建一个简单的时间控件小部件。
另请参见“timeControl”命令。
# Create a window that has a timePort in it
#
cmds.window( w=500, h=35 )
cmds.columnLayout()
cmds.timePort( 'myTimePort' )
cmds.showWindow()
# Turn snapping off on the above timePort
#
cmds.timePort( 'myTimePort', e=True, snap=False )
Create a window that has a timePort in it
cmds.window( w=500, h=35 )
cmds.columnLayout()
cmds.timePort( 'myTimePort' )
cmds.showWindow()
Turn snapping off on the above timePort
cmds.timePort( 'myTimePort', e=True, snap=False )
# toolButton
>除非使用cl / collection标志,否则此命令将创建一个添加到最近创建的工具按钮集合的toolButton。它还附加了命名工具,在选择此控件时激活它
cmds.window()
cmds.columnLayout()
cmds.toolCollection()
cmds.toolButton( tool='selectSuperContext', toolImage1=('selectSuperContext', 'aselect.xpm') )
cmds.toolButton( tool='moveSuperContext', toolImage1=('moveSuperContext', 'move_M.xpm') )
cmds.toolButton( tool='scaleSuperContext', toolImage1=('scaleSuperContext', 'scale_M.png') )
cmds.showWindow()
example showing how to create tool buttons for artisan tools
create the contexts
selectCtx = cmds.artSelectCtx()
puttyCtx = cmds.artPuttyCtx()
setPaintCtx = cmds.artSetPaintCtx()
cmds.window()
cmds.gridLayout()
cmds.toolCollection()
create the tool buttons using the contexts returned
cmds.toolButton(
amt=True, piv=True,
doubleClickCommand='cmds.toolPropertyWindow()',
tool=(selectCtx, puttyCtx, setPaintCtx),
toolImage1=(selectCtx, 'artSelect.xpm'),
toolImage2=(puttyCtx, 'putty.png'),
toolImage3=(setPaintCtx, 'paintSetMembership.png') )
cmds.showWindow()
![image.png](https://upload-images.jianshu.io/upload_images/9819652-46ec61ba4339d770.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# toolCollection
>此命令创建工具按钮集合。
cmds.window()
cmds.columnLayout()
cmds.toolCollection()
cmds.toolButton( tool='selectSuperContext', toolImage1=('selectSuperContext', 'aselect.xpm') )
cmds.toolButton( tool='moveSuperContext', toolImage1=('moveSuperContext', 'move_M.png') )
cmds.toolButton( tool='scaleSuperContext', toolImage1=('scaleSuperContext', 'scale_M.png') )
cmds.showWindow()
![image.png](https://upload-images.jianshu.io/upload_images/9819652-bc5d67f968bf5033.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# treeLister
>此命令创建/编辑/查询树列表控件。可选参数是控件的名称。
w = cmds.window(width=200)
fl = cmds.formLayout()
tl = cmds.treeLister()
cmds.formLayout(fl, e=True,
af=((tl, 'top', 0),
(tl, 'left', 0),
(tl, 'bottom', 0),
(tl, 'right', 0)))
cmds.showWindow(w)
items=['root/branchone/leafone',
'root/branchone/leaftwo',
'root/branchtwo/leafthree']
cmds.treeLister(tl, e=True, add=[(i, 'sphere.png', cmds.sphere) for i in items])
![image.png](https://upload-images.jianshu.io/upload_images/9819652-07fe0a2ad7de0534.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image.png](https://upload-images.jianshu.io/upload_images/9819652-c7740828efdfddf7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# treeView
>此命令创建自定义控件。