我想在Perl中编写一些交互式GUI.我使用过TclTk,但看起来过时了.我已经为C++编写了QT代码,但是PerlTk模块在几年内还没有发布.谷歌搜索我看到其他可能的选择.
什么是好的包,包括基本窗口,菜单,绘图画布,滚动条等.
GTK2有glade2会能写出通过使用XML文件GTK2 :: GladeXML.以下是如何将XML与应用程序捆绑在同一文件中的示例.
我一开始误解了这个问题.我以为你想要一个用于制作GUI的GUI编辑器(这就是glade2).您还可以使用Gtk2创建GUI而不使用glade2:
#!/usr/bin/perl use strict; use warnings; use Gtk2; Gtk2->init; my $window = Gtk2::Window->new; my $vbox = Gtk2::VBox->new; my $label = Gtk2::Label->new("Hello World"); my $button = Gtk2::Button->new("Press me"); $window->add($vbox); $vbox->add($label); $vbox->add($button); $window->set_default_size(200, 200); $window->signal_connect( destroy => sub { Gtk2->main_quit; } ); my $i = 0; $button->signal_connect( clicked => sub { $label->set_text("button pressed " . ++$i . " times"); } ); $window->show_all; Gtk2->main;
试试wxPerl!
来自网站:
wxPerl是一个扩展模块,允许从Perl创建GUI(图形用户界面); 它构建为令人敬畏的wxWidgets C++ GUI工具包的包装器.
与Chas Owens相呼应,林间空地非常适用于Perl中的Gtk2.此外,Gtk2还支持GtkBuilder文件(您也可以创建最新的版本).
wxPerl(和wxWidgets本身)的主要问题是它不允许你将文件事件监视器安装到它的主循环中(它只有GUI,Socket和Timer事件),这与Tk和Gtk不同.
Qt,Tk和Gtk2事件循环可以在Perl中与AnyEvent一起使用,并且Gtk2可以通过Glib :: Event和Glib :: EV模块连接到运行Event或Ev mainloop的应用程序中.