いくつかの項目の中から、ひとつ以上の項目を選べるようにしたい場合は、チェックボックスを使用します。
チェックボックスも、スライダーと同じように、
まずチェックボックスを作成し、
その後で、現在のチェックボックスの状態を調べます。
チェックボックスに、チェックが入っているかどうかを調べるには、以下の方法があります。
ret = maya.cmds.checkBox('sampleCheckBox', q=True, value=True)
if ret:
チェックされている場合に実行したい Python 文
または
if maya.cmds.checkBox('sampleCheckBox', q=True, value=True):
チェックされている場合に実行したい Python 文
maya.cmds.checkBox('sampleCheckBox', q=True, value=True) によってオンなら True、オフなら False が返されます。
ret = maya.cmds.checkBox('checkButton1', q=True, value=True)
if ret:
チェックされている場合に実行したい Python 文;
または
if maya.cmds.checkBox('checkButton1', q=True, value=True):
チェックされている場合に実行したい Python 文;
チェックボックスにチェックをいれると、 X 方向にスケールされた球を作る GUI を作ってみましょう。
以下は、チェックボックスにチェックが入っている時にだけ、 X 方向に 2.0 のスケールをかけるスクリプトです。
また、今回は、クリックするとウインドウを消去する 閉じる ボタンをつけてみましょう。
global proc makeSphere()
{
global string $checkBox1;
float $x = 1.0;
if(`checkBox -q -value $checkBox1`)
{
$x = 2.0;
}
sphere;
scale $x 1.0 1.0;
}
string $windowName = `window -title "checkBox1"`;
columnLayout;
text -label "球作成";
string $checkBox1 = `checkBox -label "スケールX"`;
button -label "作成" -command "makeSphere()";
button -label "閉じる" -command ("deleteUI " + $windowName);
showWindow;
- 以下の Python スクリプトを checkBox1.py という名前で作ります。
import maya.cmds
def makeSphere():
x = 1.0
if maya.cmds.checkBox(checkBox1, q=True, value=True):
x = 2.0
maya.cmds.sphere()
maya.cmds.scale(x, 1.0, 1.0)
windowName = maya.cmds.window(title='checkBox1')
maya.cmds.columnLayout()
maya.cmds.text(label=u'球作成')
checkBox1 = maya.cmds.checkBox(label=u'スケールX')
maya.cmds.button(label=u'作成', command='makeSphere()')
maya.cmds.button(label=u'閉じる', command=('maya.cmds.deleteUI("' + windowName + '")'))
maya.cmds.showWindow()
- スクリプト エディタ の ファイル → スクリプトのロード によって checkBox1.py を読み込んで、テンキーの Enter キーなどで実行します。
- 以下のようなウインドウが表示されます。
- そのまま X チェックボックスにチェックを入れないで、 作成 ボタンを押すと、スケールのかからない球が作られます。
- X チェックボックスにチェックを入れて、 作成 ボタンを押すと、 X 方向に 2.0 のスケールのかかった球が作られます。
import maya.cmds
def makeSphere():
x = 1.0
if maya.cmds.checkBox(checkBox1, q=True, value=True):
x = 2.0
maya.cmds.sphere()
maya.cmds.scale(x, 1.0, 1.0)
windowName = maya.cmds.window(title='checkBox1')
maya.cmds.columnLayout()
maya.cmds.text(label=u'球作成')
checkBox1 = maya.cmds.checkBox(label=u'スケールX')
maya.cmds.button(label=u'作成', command='makeSphere()')
maya.cmds.button(label=u'閉じる', command=('maya.cmds.deleteUI("' + windowName + '")'))
maya.cmds.showWindow()