2010-02-11 17 views
5

He estado trabajando con Perl durante años y recientemente comencé a aprender a hacer GUI a través de Gtk2. Todos los ejemplos y tutoriales que he encontrado ilustran aplicaciones simples de tipo ventana. Cualquier cosa con una segunda ventana se limita a un simple ingreso de texto o diálogo de tipo sí/no. Quiero aprender a construir algo con ese siguiente paso más complejo. Sé cómo construir ventanas, etc. (manualmente, o vía Glade), pero no entiendo cómo vincular el flujo de programas.¿Dónde puedo aprender diseño avanzado (Perl) Gtk2?

Estoy dispuesto a comprar libros, etc. pero solo he visto libros para C (y no en stock, tendré que encargarlos sin ser visto) y me preocupan las diferencias con Perl :: Gtk2 aún podría agregar demasiada complejidad. ¿Puede alguien o me dar un ejemplo, o que me señale un tutorial, etc.

Gracias mucho,

Adam

Respuesta

2

He estado haciendo desarrollo Perl/GTK durante un par de años y sé de lo que hablas. Gtk2 :: Ex :: FormFactory es un módulo ordenado, pero no era lo mío y definitivamente no era necesario para construir una aplicación compleja de Perl/GTK. Todos los widgets, incluidas las ventanas, en Perl/GTK admiten el método show/hide. Además, puede tener tantas ventanas nuevas como desee y simplemente mostrarlas y ocultarlas según sea necesario. Aquí hay un ejemplo simple de cambiar entre varias ventanas:

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

Salida Gtk2::Ex::FormFactory para escribir consistente, las aplicaciones GTK basadas en datos, también mirar para here más información. Básicamente, Gtk2 :: Ex :: FormFactory te ayuda a crear aplicaciones en lugar de pantallas únicas. Como los widgets Gtk2 :: Ex :: FormFactory son envoltorios simples sobre las clases Gtk2, y las clases Perl Gtk2 son envoltorios bastante simples sobre las clases C (excepto donde los modismos se hacen más perlish), experiencia C-level en las bibliotecas Gtk no debe confundirle, de hecho, los manuales perl Gtk + 2 lo remiten de nuevo al Gtk+2 Reference manual. Ver Gtk2::api para las diferencias.

Cuestiones relacionadas