項目の選択(チェックボックス)

チェックボックス

いくつかある項目の中から複数の項目を選ぶ場合はチェックボックスを使用する。

checkBox(チェックボックス)
オンとオフができるコントロール。
checkBoxGrp
複数(1 〜 4)個のチェックボックスを横に並べたもの。

チェックボックスが選ばれているかどうかを調べるには以下の方法がある。

チェックボックスの使用例

チェックボックスによって X 方向にスケールされた球を作る GUI を作ってみよう。
チェックボックスにチェックが入っている時にだけ X 方向に 2.0 のスケールをかけるスクリプトである。
また、今回はクリックするとウインドウを消去する Close ボタンをつけてみよう。

  1. 以下の MEL スクリプトを checkBox1.mel という名前で作る。
    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 "make Sphere";
    string $checkBox1 = `checkBox -label "X"`;
    button -label "OK" -command "makeSphere()";
    button -label "Close" -command "deleteUI $windowName";
    showWindow;
    
  2. Script Editor の File → Source Script によって checkBox1.mel を読み込む。
  3. 以下のようなウインドウが表示される。
    [checkBox1.melの実行結果]
  4. そのまま X チェックボックスにチェックを入れないで OK ボタンを押すとスケールのかからない球が作られる。
    [OKボタンを押した結果]
  5. Xチェックボックスにチェックを入れて OK ボタンを押すと X 方向に 2.0 のスケールのかかった球が作られる。
    [チェックボックスにチェックを入れた結果]
    [OKボタンを押した結果]

スクリプトの解説

global proc makeSphere()
このプロシージャが OK ボタンによって実行される。
以下は makeSphere() の中身。
global string $checkBox1;
チェックボックスの名前が入った外部変数 $checkBox1 の宣言。
このプロシージャ(makeSphere)の外側で宣言された(される)変数をプロシージャ内で使用するときは global を変数宣言の前につける。
float $x = 1.0;
X方向のスケール値を表す float の変数 $x を宣言し、初期値として 1.0 を代入しておく。
チェックボックスがチェックが入っていなければ、この値で球をスケールする。
if(`checkBox -q -value $checkBox1`)
{
	$x = 2.0;
}
$checkBox1 に名前の入っているチェックボックスにチェックが入っていれば、$x に 2.0 を代入する。
sphere;
NURBSの球を作る。
scale $x 1.0 1.0;
$x の値を X 方向のスケール値としてスケールをかける。
string $windowName = `window -title "checkBox1"`;
checkBox1 というタイトルのついたウインドウを作る。
作られたウインドウの名前は $windowName という変数に代入される。
columnLayout;
部品を縦1列に並べる。
text -label "make Sphere";
make Sphere というテキストを表示。
string $checkBox1 = `checkBox -label "X"`;
X というラベルのついたチェックボックスを作る。
作られたチェックボックスの名前は変数 $checkBox1 に代入される。
button -label "OK" -command "makeSphere()";
OK ボタンを作る。
ボタンを押すと makeSphere() が実行される。
button -label "Close" -command "deleteUI $windowName";
Closeボタンを作る。
ボタンを押すと、deleteUI コマンドによって $windowName に入っている名前のウインドウ(自分自身)が消去される。
showWindow;
ウインドウを表示する。

練習

まとめ

練習課題

参考


Prev
Home | Contents
Mail