使用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 終止它。)