YKLook説明書 GUIオブジェクト利用の手引き ラジオボタン 前へ   次へ
   

ラジオボタン


ラジオボタンは ON / OFF の状態を持ちます。
複数のラジオボタンをボタングループとしてまとめて使うのが一般的です。
詳細については、それぞれ をご覧ください。




表示

ラジオボタンを表示するプログラム例です。

def yki_make_display()
    rb1 = YKLookRadioButton.new( 'ラジオボタン1' )
    rb2 = YKLookRadioButton.new( 'ラジオボタン2' )
    grp = YKLookButtonGroup.new( [rb1, rb2] )
    pan = YKLookPanelFlow.new()
    pan.yk_add( rb1 )
    pan.yk_add( rb2 )
    yk_add( pan )
end

ラベル YKLookLabel と同じように、画像・アイコンを表示したり、文字列と画像・アイコンの表示位置を指定することもできます。
ON / OFF 状態を変更することもできます。
このクラスのスーパークラスである YKLookComponent のメソッドを使って、フォント・色・有効か無効か・ツールチップ等の属性を指定することもできます。

ボタングループ YKLookButtonGroup 自体は、画面上には表れません。
同じグループとして扱うボタンの集合を保持し、グループ内の複数のラジオボタンが同時に ON にならないようにするための隠れたオブジェクトです。


状態の取得

ラジオボタンの ON / OFF 状態を取り出すプログラム例です。
「状態取得」ボタンを押すと、それぞれのラジオボタンの状態を調べます。
メソッド yk_is_selected() を使います。

def yki_make_display()
    rb1 = YKLookRadioButton.new( 'ラジオボタン1' )
    rb2 = YKLookRadioButton.new( 'ラジオボタン2' )
    grp = YKLookButtonGroup.new( [rb1, rb2] )
    btn = YKLookButton.new( '状態取得' )
    pan = YKLookPanelFlow.new()
    pan.yk_add( rb1 )
    pan.yk_add( rb2 )
    pan.yk_add( btn )
    yk_add( pan )
    rb1.yk_set_tag( 'radio-1' )
    rb2.yk_set_tag( 'radio-2' )
    btn.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
    rb1  = yk_look( 'radio-1' )
    rb2  = yk_look( 'radio-2' )
    msg1 = fn_msg( rb1 )
    msg2 = fn_msg( rb2 )
    yk_show_dialog_message( nil, [msg1, msg2] )
end
def fn_msg( prm_rb )
    if prm_rb.yk_is_selected()
        msg = 'は ON です。'
    else
        msg = 'は OFF です。'
    end
    return prm_rb.yk_text() + msg
end

上の例は、ボタングループを参照するのにタグ名を使った例です。
下の例は、インスタンス変数を使った例です。

def yki_make_display()
    @rb1 = YKLookRadioButton.new( 'ラジオボタン1' )
    @rb2 = YKLookRadioButton.new( 'ラジオボタン2' )
    grp  = YKLookButtonGroup.new( [@rb1, @rb2] )
    btn  = YKLookButton.new( '状態取得' )
    pan  = YKLookPanelFlow.new()
    pan.yk_add( @rb1 )
    pan.yk_add( @rb2 )
    pan.yk_add( btn  )
    yk_add( pan )
    yk_var( '@rb1' )
    yk_var( '@rb2' )
    btn.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
    msg1 = fn_msg( @rb1 )
    msg2 = fn_msg( @rb2 )
    yk_show_dialog_message( nil, [msg1, msg2] )
end
def fn_msg( prm_rb )
    if prm_rb.yk_is_selected()
        msg = 'は ON です。'
    else
        msg = 'は OFF です。'
    end
    return prm_rb.yk_text() + msg
end

ボタングループ YKLookButtonGroup のメソッド yk_selected_button() を使って、ON になっているボタンを取得することもできます。


イベント

ラジオボタンのイベントを処理するプログラム例です。
通常のボタンに比べ、ラジオボタンのイベントを使うことはあまりありません。

def yki_make_display()
    rb1 = YKLookRadioButton.new( 'ラジオボタン1' )
    rb2 = YKLookRadioButton.new( 'ラジオボタン2' )
    grp = YKLookButtonGroup.new( [rb1, rb2] )
    pan = YKLookPanelFlow.new()
    pan.yk_add( rb1 )
    pan.yk_add( rb2 )
    yk_add( pan )
    rb1.yk_set_listener( 'fn_callback' )
    rb2.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
    rbt = prm_event.yk_source()
    msg = rbt.yk_text() + 'が ON になりました'
    yk_show_dialog_message( nil, msg )
end

yk_set_listener() の引数に指定するメソッド名は任意ですが、名前の先頭が 'yk' で始まるものは指定できません。

ラジオボタンのイベントは YKLookEventAction クラスのオブジェクトです。
詳細については クラス解説 YKLookEventAction をご覧ください。

イベント処理の基本は YKLook用アプリの製作 > イベント処理 をご覧ください。




   
YKLook説明書 GUIオブジェクト利用の手引き ラジオボタン 前へ   次へ


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.