Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以使为on-topic

2年前关闭。



Improve this question





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

我愿意买书,等等。但是我只看过C的书(不是现货的,我得订购它们才能看不见),我担心与Perl :: Gtk2的区别可能还会增加太多的复杂性。任何人都可以给我提供示例,或为我提供教程等。

非常感谢,

亚当

最佳答案

我从事Perl / GTK开发已经有两年了,知道您在说什么。 Gtk2 :: Ex :: FormFactory是一个整洁的模块,但这并不是我真正的事情,并且绝对不需要构建复杂的Perl / GTK应用程序。 Perl / GTK中的所有小部件(包括Windows)都支持show / hide方法。另外,您可以根据需要拥有任意数量的顶层窗口,并根据需要显示和隐藏它们。这是在多个窗口之间切换的简单示例:

#!/ usr / bin / perl

使用Glib qw / TRUE FALSE /;
使用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(“切换到窗口2”);
$ button-> signal_connect(clicked => sub {
$ window-> hide;
$ window2->显示;
});
$ window-> add($ button);
$ button->显示;

$ 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(“切换到窗口1”);
$ button2-> signal_connect(clicked => sub {
$ window2-> hide;
$ window-> show;
});
$ window2-> add($ button2);
$ button2->显示;

$ window-> show;

gtk2-> main;

08-27 04:08