スクリプトでパラメータを入力するインターフェースを出したい

Shade3Dのスクリプトでは、input()やraw_input()などのキーボード入力処理を受け付けません。
その代用として、独自のダイアログボックスを表示して値を入力するインターフェースを設けることができます。


# ダイアログボックスの作成.
dlg = xshade.create_dialog_with_uuid('3e40dabb-f8cd-4403-8448-159cf952455b')

# ダイアログのパラメータ.
int_id = dlg.append_int('整数値', '個')
float_id = dlg.append_float('浮動小数点値')
bool_id = dlg.append_bool('チェックボックス')
string_id = dlg.append_string('文字列')

# デフォルトボタンを追加.
dlg.append_default_button()

# 値を指定.
dlg.set_value(int_id, 100)
dlg.set_value(float_id, 1.0)
dlg.set_value(bool_id, True)
dlg.set_value(string_id, 'test')

# デフォルト値を指定.
dlg.set_default_value(int_id, 100)
dlg.set_default_value(float_id, 1.0)
dlg.set_default_value(bool_id, True)
dlg.set_default_value(string_id, 'test')

# ダイアログボックスを表示.
if dlg.ask("テスト入力"):

  # ダイアログボックスの値を取得.
  intVal = dlg.get_value(int_id)
  floatVal = dlg.get_value(float_id)
  boolVal = dlg.get_value(bool_id)
  stringVal = dlg.get_value(string_id)
  
  print "int : " + str(intVal)
  print "float : " + str(floatVal)
  print "bool : " + str(boolVal)
  print "string : " + str(stringVal)

上記をスクリプトウィンドウにコピー&ペーストして実行、
もしくは拡張子pyのファイルに保存してscriptsフォルダに配置して実行すると、
以下のダイアログボックスが表示されます。

ダイアログボックスのOKボタンを押すと、メッセージウィンドウに入力された値が表示されます。

「xshade.create_dialog_with_uuid」でダイアログボックスを作成します。
引数では任意のUUIDを指定します。
UUIDの作成については「UUIDを生成する (ウィジット/プラグインの識別用)」をご参照くださいませ。
戻り値は”dialog”クラスが返されます。
UUIDを指定することでダイアログボックスでの値が保持されます。
2回目に開いたダイアログボックスでは前回の値が表示されます。
「dlg = xshade.create_dialog()」を使用すると、dlg.set_valueで指定した値を常に入れることになります。

dialogクラスの「append_xxx」メソッドで項目を追加します。
「append_int」「append_float」「append_bool」「append_string」は、それぞれint,float,bool,stringを指定します。
第一引数が項目名です。
「append_int」「append_float」「append_string」の場合は、第二引数に単位を指定できます(省略可能)。
戻り値は項目の識別idが返されます。

dialogクラスの「append_default_button()」で「初期設定」ボタンを追加します。
dialogクラスの「set_value」で第一引数で指定した識別idに対して、第二引数の値を入れます。
「create_dialog_with_uuid」でUUIDを指定してダイアログボックスを作成する場合、
2回目のダイアログボックス表示時では前回の値が引き継がれ、「set_value」の値は反映されません。
dialogクラスの「set_default_value」で第一引数で指定した識別idに対して、第二引数の値を初期値として入れます。
dialogクラスの「ask(“xxx”)」で、第一引数をタイトル名としてダイアログボックスを表示します。
ダイアログボックスでOKボタンが押されたときに、askはTrueを返します。

dialogクラスの「get_value(id)」で、第一引数で指定した識別IDの項目での値を取得します。

ダイアログボックスで指定できる項目の種類

ダイアログボックスでは、以下の項目を使用できます。

項目の種類 内容
int 整数値。単位指定可能
float 単精度浮動小数点値。単位指定可能
double 倍精度浮動小数点値。単位指定可能
bool True/False。チェックボックスとして表示される
rgb 色(RGB)指定。単位指定可能
string 1行テキストを指定。単位指定可能
secure_short_string パスワード用の短い文字列を指定。単位指定可能
secure_string パスワード用の文字列を指定。単位指定可能
text 複数行のテキストを指定
vec2 X/Y要素を指定。単位指定可能
vec3 X/Y/Z要素を指定。単位指定可能
append_path フォルダ選択
selection ポップアップメニューでの選択。単位指定可能
radio_button ラジオボタンでの選択

配置のためのグループ化、タブ化なども行えます。
詳しくは、Shade3D Python スクリプトリファレンスの「dialog」クラスをご参照くださいませ。

Translate »