ラジオボタン・チェックボタン

ラジオボタン・チェックボタンは,プログラムで決められた設定値をオン,オフあるいは選択するためのウィジェットです.

■ ラジオボタン

あるグループから一つを選択するためのウィジェットです.

書式: $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