我有一个基于Perl命令行的脚本,想要将其转换为一个跨平台的富GUI桌面应用程序。最好的方法是什么?我希望保留Perl内部和逻辑代码,但GUI应该是一个富Web应用程序。
我有一个基于Perl命令行的脚本,想要将其转换为一个跨平台的富GUI桌面应用程序。最好的方法是什么?我希望保留Perl内部和逻辑代码,但GUI应该是一个富Web应用程序。
我一直在开发使用Firefox作为平台的Perl模块XUL::Gui,用于从Perl中呈现跨平台GUI。你只需要在目标平台上安装Firefox就可以了。它目前还在开发中,但可能已经足够稳定满足你的需求。以下是一个简短的语法示例:
use XUL::Gui;
display Window title => 'Foo Processor',
Hbox(
(map {
my $id = $_;
CheckBox id => $id,
label => "use $id",
option => sub {shift->checked eq 'true' ? " -$id" : ()}
} qw/foo bar baz/
),
TextBox( id => 'num',
type => 'number',
option => sub {' -num ' . shift->value}
),
Button( label => 'run', oncommand => sub {
my @opts = map {$ID{$_}->option} qw/foo bar baz num/;
$ID{txt}->value = `fooproc @opts`;
}),
),
TextBox( FILL, id => 'txt' );
如果您有任何功能请求(或发现任何错误),请告诉我,因为它正在开发中。
而且,由于您在Firefox内部,Firefox支持的任何Web技术(canvas,iframes,flash ...)都可以完全从Perl中使用。对于GUI组件,您可以使用任何HTML和XUL标记的组合。
XUL::Gui
。 - Sinan ÜnürMojolicious是一个轻量但功能强大的Web框架,非常适合将脚本封装成快速且完美的Web应用程序。
我们在本地网络上广泛使用它,让同事们可以利用我们在Unix系统上开发的脚本,无论他们使用的平台是什么。对于简单的任务,您甚至可以将所有内容(模板和路由)打包到一个文件中:请查看Mojolicous::Lite。
它需要是一个丰富的、本地操作系统风格的GUI吗?还是只是任何旧的用户界面?你可以使用CGI::Application快速启动并运行一些东西,这可能是干净、可维护代码和短学习曲线之间的最佳平衡点。对于更重型的工作,Catalyst似乎是首选。
如果你想要制作一个具有菜单和可拖动对话框等完整功能的GUI,Perl可能不是最佳选择。