我在哪里可以学习高级(Perl)Gtk2设计?

时间:2010-02-11 15:53:35

标签: perl gtk

我多年来一直在使用Perl,最近开始学习如何通过Gtk2进行GUI。我发现的所有示例和教程都说明了简单的单窗口类型应用程序。具有第二窗口的任何内容仅限于简单的文本输入或是/否类型对话。我想学习如何用下一步更复杂的东西来构建东西。我知道如何构建窗口等(手动或通过Glade),但我不明白如何将程序流程结合在一起。

我愿意买书等等,但我只看过C(而且没有库存,我不得不看不见),我担心与Perl :: Gtk2的区别可能仍然会增加太多的复杂性。任何人都可以给我一个例子,或指向我的教程等。

非常感谢,

亚当

2 个答案:

答案 0 :(得分:2)

我已经做了几年的Perl / GTK开发并知道你在谈论什么。 Gtk2 :: Ex :: FormFactory是一个简洁的模块,但不是真正的我的东西,绝对不需要构建复杂的Perl / GTK应用程序。 Perl / GTK中的所有小部件(包括窗口)都支持show / hide方法。此外,您可以根据需要设置多个顶层窗户,并根据需要显示和隐藏它们。这是在多个窗口之间切换的简单示例:

#!/usr/bin/perl

use Glib qw/TRUE FALSE/;
use Gtk2 '-init';


$window = Gtk2::Window->new('toplevel');
$window->signal_connect(delete_event => sub { Gtk2->main_quit; });
$window->set_border_width(10);
$window->set_title("Window 1");
$window->set_position('center');
$button = Gtk2::Button->new("Switch to Window 2");
$button->signal_connect(clicked => sub {
    $window->hide;
    $window2->show;
});
$window->add($button);
$button->show;

$window2 = Gtk2::Window->new('toplevel');
$window2->signal_connect(delete_event => sub { Gtk2->main_quit; });
$window2->set_border_width(10);
$window2->set_title("Window 2");
$window2->set_position('center');
$button2 = Gtk2::Button->new("Switch to Window 1");
$button2->signal_connect(clicked => sub {
    $window2->hide;
    $window->show;
});
$window2->add($button2);
$button2->show;

$window->show;

Gtk2->main;

答案 1 :(得分:1)

查看Gtk2::Ex::FormFactory以编写一致的,数据驱动的Gtk应用程序,还可以查看here以获取更多信息。基本上Gtk2 :: Ex :: FormFactory可以帮助您构建应用程序而不是单个屏幕。由于Gtk2 :: Ex :: FormFactory窗口小部件是Gtk2类的简单包装器,而Perl Gtk2类是C类的相当简单的包装器(除了习惯用法更加完美),Gtk库中的C级经验不要混淆你,事实上,perl Gtk + 2手册会引导你回到Gtk+2 Reference manual。有关差异,请参阅Gtk2::api