2010-02-11 1 views
5

나는 수년간 Perl과 협력 해 왔으며 최근에는 Gtk2를 통해 GUI를 수행하는 방법을 배우기 시작했다. 내가 찾은 모든 예제와 튜토리얼은 간단한 한 창 유형의 애플리케이션을 보여줍니다. 두 번째 창이있는 것은 간단한 텍스트 입력 또는 예/아니오 유형 대화로 제한됩니다. 나는 그 다음 단계로 더 복잡한 것을 만들어내는 법을 배우고 싶다. 나는 창문을 만드는 법을 알고있다. (수동으로, 또는 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 클래스에 대한 간단한 래퍼입니다 (숙어가 더 자주 사용되는 곳을 제외하고). Gtk 라이브러리의 C 레벨 경험 실제로 perl Gtk + 2 매뉴얼은 Gtk+2 Reference manual으로 다시 안내합니다. 차이점은 Gtk2::api을 참조하십시오.

관련 문제