2010-02-11 2 views
5

Я работаю с Perl в течение многих лет и недавно начал учиться делать GUI через Gtk2. Все примеры и учебные пособия, которые я нашел, иллюстрируют простые приложения с одним окном. Все, что есть во втором окне, ограничено простой текстовой записью или диалогом типа «да/нет». Я хочу научиться строить что-то с этим следующим шагом более сложным. Я знаю, как создавать окна и т. Д. (Вручную или через Glade), но я не понимаю, как связать поток программы вместе.Где я могу изучить продвинутый (Perl) дизайн Gtk2?

Я готов покупать книги и т. Д., Но я видел только для C (и не на складе, я должен был бы заказать их невидимым), и я беспокоюсь о различиях с Perl :: Gtk2 может все еще добавить слишком много сложности. Может ли кто-либо предоставить мне пример, или указать мне на учебник и т.д.

Спасибо большое,

Адам

ответ

2

Я занимаюсь разработкой Perl/GTK уже пару лет и знаю, о чем вы говорите. Gtk2 :: Ex :: FormFactory - это аккуратный модуль, но на самом деле это не мое дело и определенно не нужно для создания сложного приложения Perl/GTK. Все виджеты, включая окна, в Perl/GTK поддерживают метод 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 (кроме случаев, когда идиомы сделаны более perlish), опыт C-уровня в библиотеках Gtk не следует путать вас, по сути, руководства perl Gtk + 2 ссылаются на Gtk+2 Reference manual. См. Gtk2::api.

Смежные вопросы