エントリ・メッセージ

エントリウィジェットは,一行の入力欄を作るためのものです.一方,メッセージは一行以上の

■ エントリウィジェット

エントリウィジェットは,一行の入力欄を作るためのものです.GUI でよく使われます.

書式: $child = $parent->Entry(?options?)

主なオプション

オプション 説明 オプション値の例
-width => x エントリのX方向の幅を指定する. 12, 24
-show => "c" 入力されたとき,代わりに表示する文字.パスワード入力欄などに便利. "*", "."

メソッド:

補足:

サンプル: パスワード入力


#!/usr/bin/perl -w
use Tk;

$mw = MainWindow->new();

$msg="ログインしてください.";
$row=0;
foreach $txt (qw/ユーザ: パスワード:/) {
     $mw->Label(-text=>$txt, anchor=>'w')
        ->grid(-row=>$row++, -column=>0, -sticky=>'news');
}

$ent1 = $mw->Entry(-width =>24,
                   -background=>'white')
        ->grid(-row=>0, -column=>1, -sticky=>'news');

$ent2 = $mw->Entry(-width =>24, -show=>"*",
                   -background=>'white')
        ->grid(-row=>1, -column=>1, -sticky=>'news');

$mw->Button(-text=>"ログイン", -command=>\&Check_pswd)
        ->grid(-row=>2, -column=>0, 
                -columnspan=>2);

$mw->Label(-textvariable=>\$msg, -relief=>'sunken')
        ->grid(-row=>3, -column=>0, 
                -columnspan=>2, -sticky=>'news');

MainLoop;

sub Check_pswd {
        my $logname = $ent1->get;
        my $passwd = $ent2->get;

        if (($logname eq "perltk") && ($passwd eq "program")) {
                $msg = "ログイン成功!!";
        } else {
                $msg = "ログイン失敗";
                $mw->bell;
                $ent2->delete(0,'end');
        }
}

#---
#entry.pl 

■ メッセージウィジェット

複数行のテキストを表示するためのウィジェットです.入力は出来ませんが,テキストの高さにあわせて,縦横比を自動的に調整してくれます.

書式: $child = $parent->Message(?options?)

主なオプション

オプション 説明 オプション値の例
-text => textstring メッセージ文字列を指定する. "これはペンです.
あれはりんごです.
    perl/Tk"
-aspect => aspect メッセージの高さを1としたとき,横幅の割合x100の値を指定する.例えば縦横比3の時は300. 300, 450
-justify => style テキストを寄せる方向を指定.デフォルトは'left' 'left', 'right', 'center'のどれか
-width=> width ウィジェットの幅.aspectよりも優先される 60, 120

サンプル: 長いメッセージ


#!/usr/bin/perl -w
use Tk;

$msg = "
  Perl/Tk は、Nick Ing-Simmons 氏が、Tcl/Tk の Tkツールキットの部分を、
Tcl 言語に依存せずに他のプログラミング言語からも利用できる、Portable 
な Tk、すなわち pTk を作ろうと試みて、それを最初に Perl で利用できる
ようにしたものです。

  しかし実際には Tcl 言語との関わりを完全に絶つには至っていません。
この pTk (と Perl とのインターフェイス部分)は、Perl からはモジュール
として利用できるようになっており、GUI を使ったプログラミングを Tcl/Tk 
と同じように手軽に実現できます。さらにこの Tk モジュールには、Tcl/Tk 
標準のウィジェットだけでなく Tcl/Tk 用の拡張コマンドとして配布されて
いる Tix なども盛り込まれているので、非常に多くのウィジェットが利用で
きるようになっています。

            須栗歩人「入門 Perl/Tk」(秀和システム) から
";

$mw = MainWindow->new();
$mw->Message(-text=>$msg, -aspect=>300)
        ->pack(-fill=>'x');

#---
#message.pl