2010-02-11 48 views
5

我一直在使用Perl多年,最近開始學習如何通過Gtk2來完成GUI。我發現的所有示例和教程都演示了簡單的單窗口類型應用程序。第二個窗口的任何內容都限於簡單的文本輸入或是/否類型對話框。我想學習如何用更復雜的下一步來構建一些東西。我知道如何構建窗口等(手動或通過格萊德),但我不明白如何將程序流綁定在一起。我在哪裏可以學習高級(Perl)Gtk2設計?

我願意購買書籍等,但我只看到C(而不是現貨,我必須訂購他們看不見),我擔心與Perl的差異:: Gtk2可能仍然會增加太多的複雜性。任何人都可以任意給我一個例子,或點我的教程等

謝謝了,

亞當

回答

2

我一直在做Perl/GTK開發幾年,現在知道你在說什麼。 Gtk2 :: Ex :: FormFactory是一個整潔的模塊,但實際上並不是我的東西,對於構建複雜的Perl/GTK應用程序絕對不是必需的。 Perl/GTK中的所有小部件(包括Windows)都支持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

寫一致退房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

相關問題