ここでは FormLayout() と、
tabLayout() の使用方法を練習してみましょう。
formLayout() はレイアウトの中で最も自由がきくもので、
ウインドウの上下左右からの絶対位置や、
他の部品からの相対位置によって部品を配置することができます。
tabLayout() はタブを作成することができます。
この関数を実行すると、
それ以降の部品・レイアウトはタブグループになり、 1 つのタブになってゆきます。
まず、FormLayout() によってタブの部分と 閉じる ボタンを配置し、tabLayout() によって A・B ボタンのあるタブと C・D ボタンのあるタブを切替えることができるようにしてみましょう。
string $windowName = `window -title "layout5"`;
string $form = `formLayout`;
string $closeButton = `button -label "閉じる" -command ("deleteUI " + $windowName)`;
formLayout -edit
-attachForm $closeButton "top" 130
-attachForm $closeButton "left" 0
-attachForm $closeButton "bottom" 0
-attachForm $closeButton "right" 0
$form;
string $tabs = `tabLayout -innerMarginWidth 10 -innerMarginHeight 10`;
formLayout -edit
-attachForm $tabs "top" 0
-attachForm $tabs "left" 0
-attachControl $tabs "bottom" 10 $closeButton
-attachForm $tabs "right" 0
$form;
string $tab1 = `columnLayout`;
button -label "A";
button -label "B";
setParent ..;
string $tab2 = `columnLayout`;
button -label "C";
button -label "D";
setParent ..;
tabLayout -edit -tabLabel $tab1 "タブ1" -tabLabel $tab2 "タブ2" $tabs;
showWindow;
import pymel.core
windowName = pymel.core.window(title='layout5')
form = pymel.core.formLayout()
closeButton = pymel.core.button(label=u'閉じる', command=('pymel.core.deleteUI("' + windowName + '")'))
pymel.core.formLayout(form, edit=True,
attachForm=((closeButton, 'top', 130),
(closeButton, 'left', 0),
(closeButton, 'bottom', 0),
(closeButton, 'right', 0)))
tabs = pymel.core.tabLayout(innerMarginWidth=10, innerMarginHeight=10)
pymel.core.formLayout(form, edit=True,
attachForm=((tabs, 'top', 0),
(tabs, 'left', 0),
(tabs, 'right', 0)),
attachControl=(tabs, 'bottom', 10, closeButton))
tab1 = pymel.core.columnLayout()
pymel.core.button(label='A')
pymel.core.button(label='B')
pymel.core.setParent('..')
tab2 = pymel.core.columnLayout()
pymel.core.button(label='C')
pymel.core.button(label='D')
pymel.core.setParent('..')
pymel.core.tabLayout(tabs, edit=True, tabLabel=((tab1, u'タブ1'), (tab2, u'タブ2')))
pymel.core.showWindow()
import pymel.core
windowName = pymel.core.window(title='layout5')
form = pymel.core.formLayout()
closeButton = pymel.core.button(label=u'閉じる', command=('pymel.core.deleteUI("' + windowName + '")'))
pymel.core.formLayout(form, edit=True,\
attachForm=((closeButton, 'top', 130),\
(closeButton, 'left', 0),\
(closeButton, 'bottom', 0),\
(closeButton, 'right', 0)))
(closeButton, 'top', 130)
(closeButton, 'left', 0)
(closeButton, 'bottom', 0)
(closeButton, 'right', 0)
tabs = pymel.core.tabLayout(innerMarginWidth=10, innerMarginHeight=10)
pymel.core.formLayout(form, edit=True,\
attachForm=((tabs, 'top', 0),\
(tabs, 'left', 0),\
(tabs, 'right', 0)),\
attachControl=(tabs, 'bottom', 10, closeButton))
(tabs, 'top', 0)
(tabs, 'left', 0)
(tabs, 'right', 0)
(tabs, 'bottom', 10, closeButton)
tab1 = pymel.core.columnLayout()
pymel.core.button(label='A')
pymel.core.button(label='B')
pymel.core.setParent('..')
tab2 = pymel.core.columnLayout()
pymel.core.button(label='C')
pymel.core.button(label='D')
pymel.core.setParent('..')
pymel.core.tabLayout(tabs, edit=True, tabLabel=((tab1, u'タブ1'), (tab2, u'タブ2')))
pymel.core.showWindow()
上の、layout5.py から formLayout の部分だけを抜き出すと、 以下のようなプログラムになります。
import pymel.core
windowName = pymel.core.window(title='layout5_1')
form = pymel.core.formLayout()
closeButton = pymel.core.button(label=u'閉じる', command=('pymel.core.deleteUI("' + windowName + '")'))
pymel.core.formLayout(form, edit=True,\
attachForm=((closeButton, 'top', 130),\
(closeButton, 'left', 0),\
(closeButton, 'bottom', 0),\
(closeButton, 'right', 0)))
pymel.core.showWindow()
上の、layout5.py から tabLayout の部分だけを抜き出すと、 以下のようなプログラムになります。
import pymel.core
windowName = pymel.core.window(title='layout5_2')
tabs = pymel.core.tabLayout(innerMarginWidth=10, innerMarginHeight=10)
tab1 = pymel.core.columnLayout()
pymel.core.button(label='A')
pymel.core.button(label='B')
pymel.core.setParent('..')
tab2 = pymel.core.columnLayout()
pymel.core.button(label='C')
pymel.core.button(label='D')
pymel.core.setParent('..')
pymel.core.tabLayout(tabs, edit=True, tabLabel=((tab1, u'タブ1'), (tab2, u'タブ2')))
pymel.core.showWindow()