columnLayout
此命令創(chuàng)建一個布局,將其子項排列在一列中。
cmds.window()
cmds.columnLayout( columnAttach=('both', 5), rowSpacing=10, columnWidth=250 )
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

dockControl
創(chuàng)建可??靠丶?,也稱為工具選項板或?qū)嵱贸绦虼翱凇?/p>
myWindow = cmds.window()
buttonForm = cmds.formLayout( parent = myWindow )
cmds.button( parent = buttonForm )
allowedAreas = ['right', 'left']
cmds.dockControl( area='left', content=myWindow, allowedArea=allowedAreas )

flowLayout
此命令創(chuàng)建一個布局,用于沿一條線(水平或垂直)排列其子項。
根據(jù)-wrap布爾標志的值(默認為false),如果布局的父級不能適合一行中的所有子級,則子級將換行到下一行或被截斷。
cmds.window()
cmds.flowLayout( columnSpacing=10 )
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

formLayout
此命令創(chuàng)建表單布局控件。表單布局允許作為其直接子項的控件的絕對和相對定位
window = cmds.window()
form = cmds.formLayout(numberOfDivisions=100)
b1 = cmds.button()
b2 = cmds.button()
column = cmds.columnLayout()
cmds.button()
cmds.button()
cmds.button()
cmds.formLayout( form, edit=True, attachForm=[(b1, 'top', 5), (b1, 'left', 5), (b2, 'left', 5), (b2, 'bottom', 5), (b2, 'right', 5), (column, 'top', 5), (column, 'right', 5) ], attachControl=[(b1, 'bottom', 5, b2), (column, 'bottom', 5, b2)], attachPosition=[(b1, 'right', 5, 75), (column, 'left', 0, 75)], attachNone=(b2, 'top') )
cmds.showWindow( window )

frameLayout
此命令創(chuàng)建幀布局控件。
框架布局可以圍繞其子控件繪制邊框以及顯示標題。
框架布局也可以是可折疊的。
折疊框架布局將使框架布局的子項不可見并縮小框架布局大小。
然后可以擴展框架布局以使其子項可見。
請注意,框架布局可能只有一個子控件。
如果您希望在框架布局中有多個子項,則必須使用其他控件布局作為框架布局的直接子項。
cmds.window()
cmds.scrollLayout( 'scrollLayout' )
cmds.columnLayout( adjustableColumn=True )
cmds.frameLayout( label='Buttons' )
cmds.columnLayout()
cmds.button()
cmds.button()
cmds.button()
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.frameLayout( label='Scroll Bars' )
cmds.columnLayout()
cmds.intSlider()
cmds.intSlider()
cmds.intSlider()
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.frameLayout( label='Fields' )
cmds.columnLayout()
cmds.intField()
cmds.intField()
cmds.intField()
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.frameLayout( label='Check Boxes' )
cmds.columnLayout()
cmds.checkBox()
cmds.checkBox()
cmds.checkBox()
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.showWindow()

gridLayout
此布局以網(wǎng)格方式排列子項,其中網(wǎng)格中的每個單元格大小相同。您可以指定行數(shù)和列數(shù)以及網(wǎng)格單元格的寬度和高度。
cmds.window()
cmds.gridLayout( numberOfColumns=2, cellWidthHeight=(50, 50) )
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

layout
此命令允許您編輯或查詢?nèi)魏尾季值膶傩?。參?shù)是布局的名稱。
# Create a simple window containing a single column layout
# and a few buttons.
#
window = cmds.window(title='Layout Example')
column = cmds.columnLayout()
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow( window )
# If you don't know that the layout is actually a 'columnLayout' then
# you may use the 'layout' command to determine certain properties.
#
cmds.layout( column, query=True, numberOfChildren=True )
cmds.layout( column, query=True, childArray=True )
cmds.layout( column, query=True, height=True )

menuBarLayout
創(chuàng)建包含菜單欄的布局。
菜單欄將出現(xiàn),其行為類似于使用'window -menuBar true'命令創(chuàng)建的任何菜單欄。
# Create a window with two menu bar layouts.
#
window = cmds.window()
cmds.columnLayout( adjustableColumn=True )
# Create first menu bar layout.
#
menuBarLayout = cmds.menuBarLayout()
cmds.menu( label='File' )
cmds.menuItem( label='New' )
cmds.menuItem( label='Open' )
cmds.menuItem( label='Close' )
cmds.menu( label='Help', helpMenu=True )
cmds.menuItem( label='About...' )
cmds.columnLayout()
cmds.button( label='Add Menu', command=('cmds.menu(parent=\"' + menuBarLayout + '\"); cmds.menuItem()') )
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.separator( height=10, style='none' )
# Create a second menu bar layout.
#
cmds.menuBarLayout()
cmds.menu( label='Edit' )
cmds.menuItem( label='Cut' )
cmds.menuItem( label='Copy' )
cmds.menuItem( label='Paste' )
cmds.menu( label='View' )
cmds.menuItem( label='Fonts...' )
cmds.menuItem( label='Colors...' )
cmds.columnLayout()
cmds.text( label='Add some controls here.' )
cmds.setParent( '..' )
cmds.setParent( '..' )
cmds.showWindow( window )

paneLayout
此命令創(chuàng)建窗格布局。
窗格布局可以具有任意數(shù)量的子窗口,但是在任何時候只有某些子窗口可見,這由當前布局配置確定。
例如,水平拆分窗格僅顯示兩個子窗口,一個在另一個上面,兩者之間有一個可見的分隔符。
可以移動分隔符以改變每個窗格的大小。
cmds.window()
cmds.paneLayout( configuration='quad' )
cmds.button()
cmds.textScrollList( append=['one', 'two', 'three'] )
cmds.scrollField()
cmds.scrollLayout()
cmds.columnLayout()
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

rowColumnLayout
此命令創(chuàng)建rowColumn布局。
rowColumn布局以子行或列格式定位子項。
# The following script will position the buttons in a single column.
cmds.window()
cmds.rowColumnLayout( numberOfColumns=1 )
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

# The following script will position the buttons in a single row.
cmds.window()
cmds.rowColumnLayout( numberOfRows=1 )
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

# The following script will position the buttons in 3 columns, each
# column a different width.
cmds.window()
cmds.rowColumnLayout( numberOfColumns=3, columnWidth=[(1, 60), (2, 80), (3, 100)] )
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

# The following script will position the buttons in 2 rows, each
# row a different height.
cmds.window()
cmds.rowColumnLayout( numberOfRows=2, rowHeight=[(1, 30), (2, 60)] )
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.button()
cmds.showWindow()

rowLayout
此命令創(chuàng)建一個能夠?qū)⒆禹椂ㄎ坏絾蝹€水平行的布局。
# Layout a label, field and slider such that the label is right
# justified and the field adjusts in size as the window is resized.
#
cmds.window()
cmds.rowLayout( numberOfColumns=3, columnWidth3=(80, 75, 150), adjustableColumn=2, columnAlign=(1, 'right'), columnAttach=[(1, 'both', 0), (2, 'both', 0), (3, 'both', 0)] )
cmds.text()
cmds.intField()
cmds.intSlider()
cmds.showWindow()

scrollLayout
此命令創(chuàng)建滾動布局。
當您有許多控件時,滾動布局非常有用,這些控件一次都不可見。
cmds.window( widthHeight=(350, 150) )
scrollLayout = cmds.scrollLayout(
horizontalScrollBarThickness=16,
verticalScrollBarThickness=16)
cmds.rowColumnLayout( numberOfColumns=3 )
for index in range(10):
cmds.text()
cmds.intField()
cmds.intSlider()
cmds.showWindow()
value = cmds.scrollLayout(scrollLayout, query=True, scrollAreaValue=True)
top = value[0]
left = value[1]

shelfLayout
此命令創(chuàng)建一個新的空架子布局。
貨架布局可以接受命令腳本的下降。
使用addNewShelfTab MEL命令將架子添加到頂層架子。
# Create 4 shelves with 3 icons
cmds.window()
cmds.tabLayout()
sh1 = cmds.shelfLayout("First", style="iconOnly",
backgroundColor=(.9, .2, .2))
sh1b1 = cmds.shelfButton(image1="textureEditor.png",
label="textureEditor", annotation="textureEditor",
command="TextureViewWindow",
imageOverlayLabel="1",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(1, .25, .25, .5))
sh1b2 = cmds.shelfButton(image1="undo.png",
label="undo", annotation="undo",
command="undo",
imageOverlayLabel="1",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(1, .25, .25, .5))
sh1b3 = cmds.shelfButton(image1="redo.png",
label="redo", annotation="redo",
command="redo",
imageOverlayLabel="1",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(1, .25, .25, .5))
cmds.setParent('..')
sh2 = cmds.shelfLayout("Second", style="textOnly",
backgroundColor=(.2, .9, .2))
sh2b1 = cmds.shelfButton(image1="textureEditor.png",
label="textureEditor", annotation="textureEditor",
command="TextureViewWindow",
imageOverlayLabel="2",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, 1, .25, .5))
sh2b2 = cmds.shelfButton(image1="undo.png",
label="undo", annotation="undo",
command="undo",
imageOverlayLabel="2",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, 1, .25, .5))
sh2b3 = cmds.shelfButton(image1="redo.png",
label="redo", annotation="redo",
command="redo",
imageOverlayLabel="2",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, 1, .25, .5))
cmds.setParent('..')
sh3 = cmds.shelfLayout("Third", style="iconAndTextHorizontal",
backgroundColor=(.2, .2, .9))
sh3b1 = cmds.shelfButton(image1="textureEditor.png",
label="textureEditor", annotation="textureEditor",
command="TextureViewWindow",
imageOverlayLabel="3",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, .25, 1, .5))
sh3b2 = cmds.shelfButton(image1="undo.png",
label="undo", annotation="undo",
command="undo",
imageOverlayLabel="3",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, .25, 1, .5))
sh3b3 = cmds.shelfButton(image1="redo.png",
label="redo", annotation="redo",
command="redo",
imageOverlayLabel="3",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, .25, 1, .5))
cmds.setParent('..')
sh4 = cmds.shelfLayout("Fourth", style="iconAndTextVertical")
sh4b1 = cmds.shelfButton(image1="textureEditor.png",
label="textureEditor", annotation="textureEditor",
command="TextureViewWindow",
imageOverlayLabel="4",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, 1, 1, .5))
sh4b2 = cmds.shelfButton(image1="undo.png",
label="undo", annotation="undo",
command="undo",
imageOverlayLabel="4",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, 1, 1, .5))
sh4b3 = cmds.shelfButton(image1="redo.png",
label="redo", annotation="redo",
command="redo",
imageOverlayLabel="4",
overlayLabelColor=(.1, .1, .1),
overlayLabelBackColor=(.25, 1, 1, .5))
cmds.setParent('..')
cmds.setParent('..')
cmds.showWindow()
# Move some icons around
# Move undo to the first position in shelf 1
cmds.shelfLayout(sh1, edit=True, position=(sh1b2, 1))
# This does nothing
cmds.shelfLayout(sh2, edit=True, position=(sh2b2, 2))
# Move undo to the last position in shelf 3
cmds.shelfLayout(sh3, edit=True, position=(sh3b2, 3))
# Swap textureEditor and redo in shelf 4
cmds.shelfLayout(sh4, edit=True, position=[(sh4b1, 3), (sh4b3, 1)])



shelfTabLayout
此命令創(chuàng)建/編輯/查詢貨架選項卡組,該組實際上是一個普通的tabLayout,在選項卡欄中有一些丟棄行為。垃圾桶圖標可以出現(xiàn)在右上角,用于處理從貨架拖到其上的按鈕。
cmds.window()
cmds.shelfTabLayout( 'mainShelfTab', image='smallTrash.png', imageVisible=True )
cmds.shelfLayout( 'Dynamics' )
cmds.setParent( '..' )
cmds.shelfLayout( 'Rendering' )
cmds.setParent( '..' )
cmds.shelfLayout( 'Animation' )
cmds.setParent( '..' )
cmds.showWindow()

tabLayout
這個命令創(chuàng)建一個選項卡組。
選項卡組是一種特殊形式的控制布局,只包含控制布局。
cmds.window( widthHeight=(200, 150) )
form = cmds.formLayout()
tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)) )
child1 = cmds.rowColumnLayout(numberOfColumns=2)
cmds.button()
cmds.button()
cmds.button()
cmds.setParent( '..' )
child2 = cmds.rowColumnLayout(numberOfColumns=2)
cmds.button()
cmds.button()
cmds.button()
cmds.setParent( '..' )
cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'One'), (child2, 'Two')) )
cmds.showWindow()

toolBar
創(chuàng)建一個工具欄。工具欄是包含一組控件的可移動面板。它們被放置在主窗口中央控制器周圍的工具欄區(qū)域中。工具欄可以在其當前區(qū)域內(nèi)移動,移動到新區(qū)域并浮動。
myWindow = cmds.window()
buttonForm = cmds.formLayout( parent = myWindow )
cmds.button( parent = buttonForm )
allowedAreas = ['top', 'bottom']
cmds.toolBar( area='top', content=myWindow, allowedArea=allowedAreas )

workspaceControl
創(chuàng)建和管理用于在布局中托管窗口的窗口小部件,以實現(xiàn)對接和堆疊窗口。
def createCustomWorkspaceControlUI(*args):
cmds.columnLayout()
cmds.button()
cmds.button()
cmds.button()
cmds.workspaceControl("myCustomWorkspaceControl", retain=False, floating=True, uiScript="createCustomWorkspaceControlUI()");

workspaceLayoutManager
作區(qū)布局管理器在用戶界面中加載并保存各種工具欄和窗口的布局。此命令允許列出和管理其屬性。
cmds.workspaceLayoutManager( listLayouts=True )