使用Gtk2-Perl编程/入门/Hello World
use strict;
use warnings;
use Gtk2;
Gtk2->init;
my $window = Gtk2::Window->new;
my $label = Gtk2::Label->new('Hello World!');
$window->signal_connect('delete-event' => sub { Gtk2->main_quit });
$window->add($label);
$label ->show;
$window->show;
Gtk2->main;
use strict;
use warnings;
因为如果还没有人告诉你,在编写每个Perl程序时都要在顶部包含这些内容,我现在就告诉你。
use Gtk2;
Gtk+ 库包含在 Gtk2 命名空间下。
Gtk2->init;
每个 Gtk2 应用程序都需要调用此方法。它初始化库以供使用,设置颜色映射和连接默认信号处理程序等内容。此方法还会检查已在命令行上传递给应用程序的参数。所有 Gtk 应用程序都接受以下参数。它们将从参数列表中删除,其余参数将留给您的应用程序处理。
* --gtk-module * --g-fatal-warnings * --gtk-debug * --gtk-no-debug * --gdk-debug * --gdk-no-debug * --display * --sync * --name * --class
无需显式调用 init 方法,您可以像这样隐式调用它。
use Gtk2 '-init';
my $window = Gtk2::Window->new('toplevel');
my $label = Gtk2::Label->new('Hello World!');
这两行创建新的部件。部件是 GUI 的元素。窗口、标签、按钮、菜单、图像都是部件的示例。在这个例子中,我们可以看到窗口部件的构造函数带有一个参数,告诉它创建一个顶级窗口,而标签部件可以接收一些要显示的文本。不同的部件接受不同的构造函数参数。查看 Gtk 文档以获取有关特定部件的更多信息。
$window->add($label);
这行代码将标签打包到窗口中。窗口部件是容器的一个例子。容器部件用于控制其子部件如何在屏幕上显示。容器部件有多种方法可用于添加子部件。这里我们使用一个非常简单的示例在窗口内显示一个标签。
$label ->show;
$window->show;
你能猜出这些代码行是做什么的吗?
$window->show_all;
我们也可以这样说。
Gtk2->main;
每个 Gtk 应用程序都必须调用 main 方法。这将控制权交给 Gtk 主循环,该循环等待事件发生,然后采取适当的操作。
$window->signal_connect('delete-event' => sub { Gtk2->main_quit });
我们没有忘记介绍这一行。在这里,我们将回调附加到窗口的“delete-event”上。回调是对函数的引用。在此示例中,我们使用匿名子例程,它会中断 Gtk 的主循环并将控制权返回给程序。在调用 Gtk2->main 之后将执行任何代码,在我们的示例中,程序只是关闭。如果我们没有将此回调连接到“delete-event”,窗口将关闭,但我们的程序仍将在主循环中运行,用户将无法轻松退出应用程序。(您可以使用 Ctrl+c 终止它。)