2010-02-11 15 views
5

Ho lavorato con Perl per anni e recentemente ho iniziato a imparare come fare la GUI tramite Gtk2. Tutti gli esempi e le esercitazioni che ho trovato illustrano semplici applicazioni di tipo a una finestra. Qualsiasi cosa con una seconda finestra è limitata a un semplice inserimento di testo o dialogo di tipo sì/no. Voglio imparare come costruire qualcosa con quel prossimo passo più complesso. So come costruire windows, ecc. (Manualmente o tramite Glade) ma non capisco come legare insieme il flusso del programma.Dove posso imparare il design avanzato (Perl) di Gtk2?

Sono disposto ad acquistare libri, ecc. Ma ne ho visti solo per C (e non in magazzino, dovrei ordinarli invisibili) e sono preoccupato per le differenze con Perl :: Gtk2 potrebbe ancora aggiungere troppa complessità. Qualcuno può o mi fornire un esempio, o indicarlo ad un tutorial, ecc

Grazie molto,

Adam

risposta

2

Ho fatto sviluppo Perl/GTK per un paio di anni e so di cosa stai parlando. Gtk2 :: Ex :: FormFactory è un modulo ordinato, ma non era davvero la mia cosa e sicuramente non necessario per la creazione di una complessa applicazione Perl/GTK. Tutti i widget, incluse le finestre, in Perl/GTK supportano il metodo mostra/nascondi. Inoltre puoi avere tutte le finestre di cui vuoi e mostrarle e nasconderle se necessario. Ecco un semplice esempio di passaggio tra più finestre:

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

Partenza Gtk2::Ex::FormFactory per la scrittura coerente, le applicazioni Gtk data-driven, anche guardare here per maggiori informazioni. Fondamentalmente Gtk2 :: Ex :: FormFactory ti aiuta a creare applicazioni piuttosto che schermi singoli. Poiché i widget Gtk2 :: Ex :: FormFactory sono semplici wrapper sulle classi Gtk2 e le classi Perl Gtk2 sono wrapper abbastanza semplici rispetto alle classi C (eccetto dove gli idiomi sono creati più perlish), esperienza a livello C nelle librerie Gtk non dovresti confonderti, infatti, i manuali perl Gtk + 2 ti rimandano allo Gtk+2 Reference manual. Vedi Gtk2::api per le differenze.

Problemi correlati