什么是好的Perl交互式GUI生成器包?

什么是好的Perl交互式GUI生成器包?,perl,user-interface,Perl,User Interface,我想用Perl编写一些交互式GUI。我用过TclTk,但它看起来过时了。我已经编写了C++的QT代码,但是PelLTK模块在几年内没有发布。通过谷歌搜索,我看到了其他可能的选择 这方面有哪些好的软件包,包括基本窗口、菜单、绘图画布、滚动条等等。试试看 从网站: wxPerl是一个扩展模块,允许 GUI(图形用户界面)的创建 (接口)来自Perl;它是作为一个整体建造的 C++ WXWIDGEST的包装器 图形用户界面工具包 它可以写出一个可供用户使用的XML文件。在同一个文件中有一个 我一开始误

我想用Perl编写一些交互式GUI。我用过TclTk,但它看起来过时了。我已经编写了C++的QT代码,但是PelLTK模块在几年内没有发布。通过谷歌搜索,我看到了其他可能的选择

这方面有哪些好的软件包,包括基本窗口、菜单、绘图画布、滚动条等等。

试试看

从网站:

wxPerl是一个扩展模块,允许 GUI(图形用户界面)的创建 (接口)来自Perl;它是作为一个整体建造的 C++ WXWIDGEST的包装器 图形用户界面工具包

它可以写出一个可供用户使用的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;

与Chas Owens类似,glade在Perl中与Gtk2配合使用时非常有用。此外,Gtk2还支持GtkBuilder文件(您也可以创建最新的glade)

与Tk和Gtk不同,wxPerl(以及wxWidgets本身)的主要问题是它不允许您将文件事件观察器安装到其主循环中(它只有GUI、套接字和计时器事件)


Qt、Tk和Gtk2事件循环可以在Perl中与AnyEvent一起使用,Gtk2可以连接到运行事件的应用程序中,或者连接到带有Glib::event和Glib::Ev模块的Ev Main循环中。

WxPerl的GUI生成器应该是开源的,或者两者都是开源的。

我可能会使用Gtk2,但Tk肯定没有死。缺少发行版是由于多年来一直在解决bug。很多人仍在使用它,而且它通常运行良好。(Tk的事件循环有点傻,但这是一个可能不应该让您担心的细节。)唯一的缺点是您的GUI看起来像是1996年的,但谁在乎呢


(Git中包含的<代码> GITK工具显示TK GUI看起来很好,只要它们有用。)

< P>我没有一个真正的答案给你,但是通常你必须考虑你的部署目标。一些GUI库非常好,但前提是您可以让它们在您的操作系统上工作。我不一定认为所有框架都需要跨平台兼容,这是一个在完美世界中努力实现的值得称赞的目标,只要你选择的一个不锁定你的用户的一个重要部分,因为基础GUI库很难在特定平台上安装或支持。

< P>我的解决方案是GTK Perl。起初我很难安装它,但最终我在一个软件包中找到了Perl+Gtk2。

我只想让每个人都知道PerlQt很棒,这个网站有很多关于如何使用它的教程和大量下载的示例


PerlQt是一种非常快速和简单的方法,可以使用Qt拖放表单设计器和Perl创建外观非常好的GUI程序。PerlQt对于高级开发人员来说功能足够强大,对于初学者来说也很简单。

我曾经使用过
Tk
,但在过去的几天里,我一直在使用(),一种有状态(每个用户的持久状态)的web应用程序/服务器,它可以很容易地将“GUI”功能添加到应用程序中,同时使其具有多用户和便携性


编辑:在我写这篇文章的时候,我最感兴趣的是连续性有自己的内置Web服务器。现在,其他用于Perl的WebFramework也是如此。我一直在使用,虽然我也听说了一些好东西。

关于小部件的质量,所有三个gtk2、wx和qt4都同样好——gtk2速度最快,qt4分辨率最好,而wx在这两个参数方面介于两者之间

但是tk在速度和分辨率方面都落后于这三个方面,但仍然是第一个原因,因为它是所有基于unix的解释语言的原始小部件,第二个原因是它是freebsd的本机小部件

与今天的perl一样,perl-gtk2的文档比perl-qt4稍微发达一些,而perl-qt4又比wxperl更发达。事实上,如果你浏览网页,你会发现perl-gtk2的教程甚至比pygtk(这也是非常成熟的)和ruby-gtk2更广泛。在python中,wxpython文档领先于PyQt和pygtk,而在ruby中,ruby-qt4领先于ruby-gtk2和wxruby。然而,其他人的发展非常快(例如ruby-gtk2),一段时间后,所有九个方面都将是平等的

perl-qt4特有的问题是:对于非kde桌面,perl-qt4可能无法运行。我试着在ubuntu和sabayon中运行所有程序,发现perl-gtk2甚至wxperl(和wxruby)都运行得很好,而我甚至无法在gnome桌面上运行一个perl-qt4程序,在那里我安装了完整的qt4支持,没有kde

perl-qt4不仅要求安装qt4库,还要求安装kde桌面库。这个问题是perl-qt4特有的,在PyQt和rubyqt4的情况下不存在,因为它们在gnome下的qt4运行时都运行良好

因此,通过这种方式,九个选项中有八个(加上三个tk)做得很好(我还没有测试PySide)

就perl-tk而言,widget是经过良好开发和建立的,与tkinter、pmw和rubytk不同,它的文档是上述所有文档中最好的

但也许过了一段时间,所有的文档都会被开发出来,任何文档都会变得同样好

在考虑速度、清晰度和跨平台之间的平衡后,选择perl-gtk2、perl-qt4或wxperl

Perl Tk、Perl GTK2和Perl QT4语法与Perl编程语言语法非常吻合,而WxPerl语法更像是与Perl混合的适当C++,这与各自的语言语法不同(就像WxPython和WxRube的情况一样)。 但如果您已经记住wx代码是唯一不同的,那么您可以直接使用它