我多年来一直在使用Perl,最近开始学习如何通过Gtk2进行GUI。我发现的所有示例和教程都说明了简单的单窗口类型应用程序。具有第二窗口的任何内容仅限于简单的文本输入或是/否类型对话。我想学习如何用下一步更复杂的东西来构建东西。我知道如何构建窗口等(手动或通过Glade),但我不明白如何将程序流程结合在一起。
我愿意买书等等,但我只看过C(而且没有库存,我不得不看不见),我担心与Perl :: Gtk2的区别可能仍然会增加太多的复杂性。任何人都可以给我一个例子,或指向我的教程等。
非常感谢,
亚当
答案 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。