3

ラジオボタンの実装に問題があります。CS2のラジオボタンが問題になる可能性があることは知っていますが、どこが間違っているのかわかりません。間違った場所に角かっこまたはカンマがあるのではないかと思います。しかし、それを見ることができません。ありがとうございました。

var dlg =
"dialog {text:'Script Interface',bounds:[100,100,300,260]," +
"info: Group { orientation: 'column', alignChildren: 'center'," + 
"radiobutton0:RadioButton {bounds:[50,30,150,40] , text:'layerName0', alignment: 'left' }," +
"radiobutton1:RadioButton {bounds:[50,50,150,90] , text:'layerName1', alignment: 'left'  }}" +
"cancelBTN:Button{bounds:[110,130,190,150] , text:'Cancel' },"+
"processBTN:Button{bounds:[10,130,90,150] , text:'Ok' }}";
var win = new Window(dlg,"radio buttons"); 
win.radiobutton0.value = true;
win.center(); 
win.show();

別のこと:この形式はかなり醜いので、UI要素を書くためのより良い方法はありますか?

これが機能する必要最低限​​のコードです。var dialogBox = "dialog {orientation:'column'、alignChildren:'center'、\ info:Group {orientation:'column'、alignChildren:'center'、\ rbtn1:RadioButton {text:'Radio Button 1'、align: 'left'}、\ rbtn2:RadioButton {text:'Radio Button 2'、align:'left'}、}、}、\}} ";

win = new Window (dialogBox);
win.center(); 
win.show();

ラジオボタンの切り替えは3行目で制御されていると思います。コメントアウトすると、ラジオボタンが正しく機能しなくなります。

4

2 に答える 2

3

コードを実行すると、この行にエラーがスローされwin.radiobutton0.value = true;ました。オブジェクトは未定義です。これは、ダイアログを構造化する方法で、ボタンがinfoウィンドウ内のグループの一部であるためです。行は次のようになります

win.info.radiobutton0.value = true;

これにより、最初はradiobutton0がオンになります。

必要がなければ、ダイアログを作成するためにリソース文字列を使用する必要はありません。個々の要素は、ウィンドウオブジェクト(またはパレットまたはパネル)への参照を作成し、を使用して追加できます。.add()

例えば:

var w = new Window ("dialog");
w.alignChildren = "left";
var radio1 = w.add ("radiobutton", undefined, "Radio Button 1");
var radio2 = w.add ("radiobutton", undefined, "Radio Button 2");
radio1.value = true;
w.show ();

これは、私が見つけたScriptUIに関する最も徹底的なリファレンスです。

于 2012-11-16T15:51:10.060 に答える
0

これは、ラジオボタンが希望どおりに機能するダイアログボックスのより優れた追加バージョンです。

var w = new Window ("dialog");
w.alignChildren = "left";
var myButtonGroup = w.add ("group");
myButtonGroup.orientation = "column";
myButtonGroup.alignment = "left";
var radio1 = myButtonGroup.add ("radiobutton", undefined, "Radio Button 1");
var radio2 = myButtonGroup.add ("radiobutton", undefined, "Radio Button 2");
myButtonGroup.add ("button", undefined, "OK");
myButtonGroup.add ("button", undefined, "Cancel");
radio1.value = true;
w.center(); 
// w.show ();

if (w.show() == 1)
{
    alert("You picked " + youSelected(myButtonGroup))
}

function youSelected(rButtons)
{
    if (radio1.value == true)
    // radio1 selected
    return radio1.text
    else
    // radio2 selected
    return radio2.text
}
于 2012-11-19T09:55:19.057 に答える