2010-02-11 19 views
5

Yıllarca Perl ile çalışıyorum ve Gtk2 aracılığıyla GUI'nin nasıl yapıldığını öğrenmeye başladım. Bulduğum tüm örnekler ve öğreticiler, basit tek pencere tipi uygulamaları göstermektedir. İkinci bir pencere ile herhangi bir şey basit bir metin girişi veya evet/hayır tipi diyalog ile sınırlıdır. Bir sonraki adımla daha karmaşık bir şey inşa etmeyi öğrenmek istiyorum. Pencereleri vb. Nasıl kuracağımı biliyorum (elle veya Glade aracılığıyla) ama program akışını nasıl birbirine bağlayacağımı anlamıyorum.Gelişmiş (Perl) Gtk2 tasarımını nerede öğrenebilirim?

Kitap satın almaya istekliyim ama ben sadece C için gördüm (stokta değil, onları görünmek zorundayım) ve Perl farkları endişeliyim. Gtk2 hala çok fazla karmaşıklık ekleyebilir. Herkes bana bir örnek sunmak ya da bir öğretici bana gelin, vb

Çok teşekkürler,

Adam

cevap

2

Birkaç yıldır Perl/GTK geliştirme yapıyorum ve ne hakkında konuştuğunuzu biliyorum. Gtk2 :: Ex :: FormFactory düzgün bir modül ama gerçekten benim bir şey değildi ve kesinlikle karmaşık bir Perl/GTK uygulaması için gerekli değildir. Pencereler dahil, Perl/GTK'daki tüm widget'lar show/hide yöntemini destekler. Ayrıca, istediğiniz kadar üst düzey pencereye sahip olabilirsiniz ve sadece bunları gerektiği gibi gösterip gizleyebilirsiniz. İşte birden çok pencere arasında geçiş yapmak için basit bir örnek:

#!/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

tutarlı yazmak için dışarı Kontrol Gtk2::Ex::FormFactory, veri tabanlı Gtk uygulamaları da için here bakar mısın ya daha fazla bilgi. Temel olarak Gtk2 :: Ex :: FormFactory, tek ekranlardan ziyade uygulamalar oluşturmanıza yardımcı olur. Gtk2 :: Ex :: FormFactory widget'ları Gtk2 sınıfları üzerinde basit paketleyiciler olduğundan ve Perl Gtk2 sınıfları C sınıfları üzerindeki oldukça basit paketleyicilerdir (deyimler daha fazla perdenin yapıldığı durumlar hariç), Gtk kitaplıklarındaki C düzeyi deneyimi Aslında, kafanızın karıştırılmaması gereken perl Gtk + 2 kılavuzları sizi Gtk+2 Reference manual numaralı telefona yönlendirir. Farklar için bkz. Gtk2::api.

İlgili konular