radioButtonコマンドは必ずradioCollectionと一組で使う必要があります。
しかし数が増えてもコマンドの使い方は同じなので、「radioButtonGrp」より使い道が広く、シンプルに保てます。
●まず「radioButton」コントロールを単体かつ、フラグ無しで使ってみます。
{
window name;
columnLayout;
radioButton;
showWindow;
}
「radioCollection」が使われていないので以下のようなエラーになります。
// Error: Collection not found, or no current collection. //
(エラー:Collectionが見つからないか、または現在有効なCollectionがありません)
●「radioCollection」コントロールを使う。
「radioCollection」は必ず「radioButton」の前に使われる必要があります。
{
window name;
columnLayout;
radioCollection;
radioButton;
showWindow;
}
●複数のラジオボタン
ラジオボタンの数を増やすには単に「radioButton」コマンドを繰り返し実行します。
「radioButtonGrp」では作れない9つのボタンを作ってみます。
{
window name;
columnLayout;
radioCollection;
radioButton;
radioButton;
radioButton;
radioButton;
radioButton;
radioButton;
radioButton;
radioButton;
radioButton;
showWindow;
}
●-label
各ボタンのラベルです。通常のコントロールと同じです。
「radioCollection」には-labelフラグがないのでグループ名が必要な場合は
「text」コントロールを使用します。
{
window name;
columnLayout;
text -label "radioButtons";
radioCollection;
radioButton -label "test1";
radioButton -label "test2";
radioButton -label "test3";
showWindow;
}
●戻り値の利用
どのボタンが選択されているかを知るには、「radioCollection」を照会モードで使用します。
また-valueフラグは無く、-selectフラグを使います。
「アサイン」は以下のようになります。
`radioCollection -q -select`
戻り値はstring値です。
これを適用して、戻り値を出力するスクリプトを作ってみました。
{
global proc buttonName()
{
string $name = `radioCollection -query -select rcName`;
print ($name+"\n");
}
window name;
columnLayout;
text -label "radioButtons";
radioCollection rcName;
radioButton -label "test1";
radioButton -label "test2";
radioButton -label "test3";
button -label "print" -command "buttonName()";
showWindow;
}
戻り値はstring値であり、それぞれ
radioButton1
radioButton2
radioButton3
であることがわかります。
これを条件文で使い、
スフィア、シリンダ、コーンを選択して作成するスクリプトを作ってみます。
{
global proc buttonName()
{
string $name = `radioCollection -query -select rcName`;
if($name == "radioButton1")
{sphere;}
else if ($name == "radioButton2")
{cylinder;}
else if ($name == "radioButton3")
{cone;}
}
window name;
columnLayout;
text -label "radioButtons";
radioCollection rcName;
radioButton -label "test1";
radioButton -label "test2";
radioButton -label "test3";
button -label "print" -command "buttonName()";
showWindow;
}
----------------------------------------
まとめ
----------------------------------------
●「radioButton」の使い方はボタンの数が増えても変わらないので、5つ以上の場合はこちらのほうが簡単。
●「radioButtonGrp」との使い分ける場合覚えることが増えるので「radioButton+radioCollection」の組み合わせ1つ覚えておいたほうが応用が利くように思います。
0 件のコメント:
コメントを投稿