次のエントリ: ふっくら [diary]
Perl TK
2007-12-20-1 / カテゴリ: [programming][perl] / [permlink]
VC連携用に小物をいろいろ作ったのでメモ
cygwin perl だと X が必要なので、ActivePerl の方が楽かも。5.8 で確認。標準モジュールのみでOK
ラベル・テキスト入力・ボタンを持つウィンドウの作成
テキストを作成するには Label() メソッド。
テキスト入力欄を作成するには Entry() メソッド。
ボタンを作成するには Button() メソッド。
これらのラベルやボタンをウィジェットと言い、作成したウィジェットを画面に配置(表示)するには、pack() をコールする。
で、MainLoop() でイベントループをスタートさせる。
Entry() では -textvariabel オプションで、入力した文字列を格納する変数のリファレンスをセット。
Button() では、-command オプションで、ボタン押下時に実行するサブルーチン(コールバック関数)のリファレンスをセット。別部分に記述するなら
オプション無しで pack() すると、オートでセンタリングされるので、左寄せとかしたければ、-anchor オプションに w(west), e(east) 等を指定する。
レイアウトを気にしなくて良いちょいプロなら、こんくらいでいける。
つづく?
てか、本家が5.10になったのに追従して、ActivePerlも5.10になってる…
cygwin perl だと X が必要なので、ActivePerl の方が楽かも。5.8 で確認。標準モジュールのみでOK
ラベル・テキスト入力・ボタンを持つウィンドウの作成
#!/usr/bin/perl -w use Tk; use strict; my $mw = MainWindow->new; my $text = ""; $mw->Label( -text => 'test' )->pack(-anchor=>'w'); $mw->Entry( -textvariable => \$text )->pack(); $mw->Button( -text => 'OK', -command => sub { print "$text\n" }, )->pack(); MainLoop();まず、MainWindow->new でインスタンスを生成。
テキストを作成するには Label() メソッド。
テキスト入力欄を作成するには Entry() メソッド。
ボタンを作成するには Button() メソッド。
これらのラベルやボタンをウィジェットと言い、作成したウィジェットを画面に配置(表示)するには、pack() をコールする。
$label = $mw->Label(-text => 'test'); $label->pack();という書き方でもOK。
で、MainLoop() でイベントループをスタートさせる。
Entry() では -textvariabel オプションで、入力した文字列を格納する変数のリファレンスをセット。
Button() では、-command オプションで、ボタン押下時に実行するサブルーチン(コールバック関数)のリファレンスをセット。別部分に記述するなら
$mw->Button(-command => \&press_btn); sub press_btn { ... }な感じで。
オプション無しで pack() すると、オートでセンタリングされるので、左寄せとかしたければ、-anchor オプションに w(west), e(east) 等を指定する。
レイアウトを気にしなくて良いちょいプロなら、こんくらいでいける。
つづく?
てか、本家が5.10になったのに追従して、ActivePerlも5.10になってる…
次のエントリ: ふっくら [diary]
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12