トグルボタンを表示するプログラム例です。
def yki_make_display()
tog = YKLookToggleButton.new( 'トグルボタン' )
pan = YKLookPanelFlow.new()
pan.yk_add( tog )
yk_add( pan )
end
|
この例ではボタン内部の表示に文字列を使っていますが、他の種類のボタンとは違いトグルボタンの場合は画像・アイコンのみをボタン内部の表示に使うことも多いです。
ラベル
YKLookLabel
と同じように、画像・アイコンを表示したり、文字列と画像・アイコンの表示位置を指定することもできます。
ON / OFF 状態を変更することもできます。
このクラスのスーパークラスである
YKLookComponent
のメソッドを使って、フォント・色・有効か無効か・ツールチップ等の属性を指定することもできます。
複数のトグルボタンをひとつのグループにまとめて表示するプログラム例です。
def yki_make_display()
tb1 = YKLookToggleButton.new( 'トグルボタン1' )
tb2 = YKLookToggleButton.new( 'トグルボタン2' )
grp = YKLookButtonGroup.new( [tb1, tb2] )
pan = YKLookPanelFlow.new()
pan.yk_add( tb1 )
pan.yk_add( tb2 )
yk_add( pan )
end
|
ボタングループ
YKLookButtonGroup
自体は、画面上には表れません。
同じグループとして扱うボタンの集合を保持し、グループ内の複数のトグルボタンが同時に ON にならないようにするための隠れたオブジェクトです。
トグルボタンの ON / OFF 状態を取り出すプログラム例です。
「状態取得」ボタンを押すと、トグルボタンの状態を調べます。
メソッド
yk_is_selected()
を使います。
def yki_make_display()
tog = YKLookToggleButton.new( 'トグルボタン' )
btn = YKLookButton.new( '状態取得' )
pan = YKLookPanelFlow.new()
pan.yk_add( tog )
pan.yk_add( btn )
yk_add( pan )
tog.yk_set_tag( 'toggle' )
btn.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
tog = yk_look( 'toggle' )
if tog.yk_is_selected()
yk_show_dialog_message( nil, 'ON です' )
else
yk_show_dialog_message( nil, 'OFF です' )
end
end
|
上の例は、トグルボタンを参照するのにタグ名を使った例です。
下の例は、インスタンス変数を使った例です。
def yki_make_display()
@tg = YKLookToggleButton.new( 'トグルボタン' )
btn = YKLookButton.new( '状態取得' )
pan = YKLookPanelFlow.new()
pan.yk_add( @tg )
pan.yk_add( btn )
yk_add( pan )
yk_var( '@tg' )
btn.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
if @tg.yk_is_selected()
yk_show_dialog_message( nil, 'ON です' )
else
yk_show_dialog_message( nil, 'OFF です' )
end
end
|
トグルボタンのイベントを処理するプログラム例です。
通常のボタンに比べ、トグルボタンのイベントを使うことはあまりありません。
def yki_make_display()
tog = YKLookToggleButton.new( 'トグルボタン' )
pan = YKLookPanelFlow.new()
pan.yk_add( tog )
yk_add( pan )
tog.yk_set_listener( 'fn_callback' )
end
def fn_callback( prm_event )
tog = prm_event.yk_source()
if tog.yk_is_selected()
yk_show_dialog_message( nil, 'ON になりました' )
else
yk_show_dialog_message( nil, 'OFF になりました' )
end
end
|
yk_set_listener()
の引数に指定するメソッド名は任意ですが、名前の先頭が
'yk'
で始まるものは指定できません。
トグルボタンのイベントは
YKLookEventAction
クラスのオブジェクトです。
詳細については
クラス解説 YKLookEventAction
をご覧ください。
イベント処理の基本は
YKLook用アプリの製作 > イベント処理 をご覧ください。