Jaz*_*azz 8 windows console perl
我有几个简单的Perl程序写入标准输出,但这有一些问题:
cmd控制台上,所以我无法控制它的显示方式(颜色和终端大小),更糟糕的是,控制台无法调整大小(至少在宽度上)为了解决这些问题,我希望能够在一个简单的GUI界面中显示输出作为选项.GUI应该响应直到程序结束(应该可以在窗口运行时滚动或调整窗口大小).
我可以使用什么简单的工具包和小部件来执行此操作?(我使用ActivePerl在Windows上开发).
Ada*_*ire 10
您可以使用任何您喜欢的GUI选项,然后您可以使用Tie :: STDOUT重新定义STDOUT文件句柄的行为,print而printf不是将输出转储到您选择的小部件中.唯一的事情就是让它使用匿名子程序干净地与你的小部件交谈可能会很麻烦.这是一个使用Win32 :: GUI的简短原始示例:
use Win32::GUI();
use Tie::STDOUT
print => sub {
$main::textfield->Append(@_);
};
my $main = Win32::GUI::Window->new(
-name => 'Main',
-text => 'Perl',
-width => 220,
-height => 230,
);
our $textfield = $main->AddTextfield(
-name => "Output",
-left => 8,
-top => 8,
-width => 180,
-height => 180,
-readonly => 1,
-multiline => 1,
-vscroll => 1,
);
$main->Show();
sub Main_Terminate {
-1;
}
if(!fork()) {
print "Hello.\n";
for (1..20) {
sleep 1;
printf "More output %d\n", $_;
}
} else {
Win32::GUI::Dialog();
}
Run Code Online (Sandbox Code Playgroud)
请注意,最后的调用是为了Win32::GUI::Dialog()在脚本完成后立即关闭窗口.
通过快速搜索,您可以选择以下几种方法:
此外,还有一个wikibooks参考.