ラジオボタンを表示するプログラム例です。
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用アプリの製作 > イベント処理 をご覧ください。