ラジオボタン・チェックボタンは,プログラムで決められた設定値をオン,オフあるいは選択するためのウィジェットです.
あるグループから一つを選択するためのウィジェットです.
書式: $child = $parent->Radiobutton(?options?)
主なオプション
オプション | 説明 | オプション値の例 |
-text => textstring | ボタンにつける文字列を指定する. | "答え1", "答え2" |
-variable => \$variable | ボタングループに共通する変数へのリファレンス | \$group1 |
-value => value | ボタンを選択した時,-variableの変数にセットされる値 | "ans1", "ans2", 1, 2 |
-command => @command | ボタンを選択したとき,実行されるコールバックルーチンを指定する.無名配列,または,無名サブルーチンで指定する. | [ \&Print_msg, $msg ],sub{ Print_msg($msg);} |
-selectColor => color | ボタン選択時の色 | 'red', '#ff0000' |
-indicatoron => boolean | ボタンのインジケーターをつける(デフォルトオン) | 'yes', 'no' |
メソッド:
補足:
サンプル: 3択クイズ
#!/usr/bin/perl -w use Tk; $mw = MainWindow->new(); $mw->Label(-text=>"Q:鎌倉幕府が設立されたのは?", -font=>$font) ->pack(); for $i (qw/1024 1192 1582/) { $mw->Radiobutton(-text=>"$i 年", -variable=> \$ans, -value => $i, -command=> \&Check_answer ) -> pack(-fill=>'x'); } $mw->Label(-textvariable=>\$msg) ->pack(-fill=>'x'); MainLoop; sub Check_answer { if ($ans == 1192) { $msg = "正解です!!"; } else { $msg = "ハズレ!!"; } } #--- #radiobutton.pl
ある一つの値をオン・オフするためのウィジェットです.
書式: $child = $parent->Checkbutton(?options?)
主なオプション
オプション | 説明 | オプション値の例 |
-text => textstring | ボタンにつける文字列を指定する. | "答え1", "答え2" |
-onvalue => value | ボタンを選択したときの値 | "ON", 1 |
-offvalue => value | ボタンを選択解除した時の値 | "OFF", 0 |
-variable => \$variable | ボタンの選択値がセットされる変数へのリファレンス.デフォルトは\$child->{'Value'} | \$var |
-command => @command | ボタンを選択したとき,実行されるコールバックルーチンを指定する.無名配列,または,無名サブルーチンで指定する. | [ \&Print_msg, $msg ],sub{ Print_msg($msg);} |
-selectColor => color | ボタン選択時の色 | 'red', '#ff0000' |
-indicatoron => boolean | ボタンのインジケーターをつける(デフォルトオン) | 'yes', 'no' |
メソッド:
補足:
サンプル: モードオン・オフ
#!/usr/bin/perl -w use Tk; $mw = MainWindow->new(); $mw->Button(-text=>"ここをクリック", -command=>\&Click_button) ->pack(-fill=>'x'); $chk_but= $mw->Checkbutton(-text=>"モードをオンにする", -onvalue => "ON", -offvalue => "OFF", -variable=> \$mode) -> pack(-fill=>'x'); $mw->Label(-textvariable=>\$msg) ->pack(-fill=>'x'); $chk_but->deselect; &Click_button; MainLoop; sub Click_button { $msg = "モードは$modeです"; } #--- #checkbutton.pl