WxPerlの真似をしてPerl/Tkでオブジェクト指向的GUIプログラミングしてみる。処理用のモジュールを作ってフレームクラスから呼べば可読性がたかまれタカマル。
メインのソースから
#!C\strawberry\perl\bin\perl # # main.pl use utf8; use strict; use TkFrame; my $tkobj = TkFrame->new(); $tkobj->MainLoop;
フレーム用のクラスを呼び出す
#!C\strawberry\perl\bin\perl # # TkFrame.pm use utf8; use strict; use Tk; package TkFrame; sub new { my $mw = MainWindow->new; $mw->title("Hello World"); $mw->Button(-text => "Done", -command => sub { exit })->pack; } 1;
ourで変数を宣言すればクラス変数みたいなこともできる。Perlは自由ですね。
#!C\strawberry\perl\bin\perl # # Main.pl # use utf8; use strict; use TkFrame; my $tkobj = TkFrame->new(); $tkobj->MainLoop;
フレームを呼び出す
#!C\strawberry\perl\bin\wperl # # TkFrame.pm # use utf8; use strict; use Tk; package TkFrame; our $mw; our $txt; sub new { $mw = MainWindow->new; $mw->title('Perlのテスト'); $mw->Button( -text => "Done", -font => [ 'Osaka', 12 ], -command =>\&hello )->pack; $txt = $mw->Text( -width => 40, -height => 10, -font => [ 'Osaka', 12 ] )->pack; } sub hello { $txt -> insert ('end', "Hello!"); } 1;