GUIサンプル ボタン

βテストにご参加いただきまことにありがとうございます。

次はボタンのサンプルです。

ボタンは、クリックするとtrueを返します。ifでボタンが押されたことを検出します。

サンプルでは、ボタンが押されたことを記録するために、整数値を持つbtn変数をグローバル変数として用意しています。
frameイベントの最初にグローバル変数を使うことを宣言するため、global btnを記述します。
(記述しない場合、btnという名前のローカル変数になってしまいます。)

Begin()-End()の間に、Button()を記述します。ボタンは、入力をもつGUI部品のため、この部品だけのタグをつけます。サンプルでは、”b1″としています。

ifでボタンが押されたらbtn変数に1を代入します。

次にボタンが押されたことをあらわすメッセージを表示します。btn変数が1ならば、ボタンが押されたことになりますのでifで検出します。

ifでGUIの状態変化を検出、状態を記録する変数はグローバル変数にすることがポイントです。

#LAYOUT
import vrmapi

btn = 0

def vrmevent(obj,ev,param):
    if ev == 'init':
        obj.SetEventFrame()
    elif ev == 'broadcast':
        dummy = 1
    elif ev == 'timer':
        dummy = 1
    elif ev == 'time':
        dummy = 1
    elif ev == 'after':
        dummy = 1
    elif ev == 'frame':
        global btn

        vrmapi.ImGui().Begin("win1","Sample Window")

        vrmapi.ImGui().Text("ボタンテスト")
        vrmapi.ImGui().Text("btn変数の状態 =>"+str(btn))
        if vrmapi.ImGui().Button("b1", "ボタンその1"):
            btn = 1
        if btn == 1:
            vrmapi.ImGui().Text("ボタンをクリックした")

        vrmapi.ImGui().End()
    elif ev == 'keydown':
        dummy = 1
実行結果