2010-02-11 29 views
5

Tôi đã làm việc với Perl trong nhiều năm và gần đây đã bắt đầu học cách làm GUI thông qua Gtk2. Tất cả các ví dụ và hướng dẫn tôi đã tìm thấy minh họa cho các ứng dụng loại cửa sổ đơn giản. Bất cứ điều gì với một cửa sổ thứ hai được giới hạn trong một mục nhập văn bản đơn giản hoặc có/không có loại đối thoại. Tôi muốn học cách xây dựng thứ gì đó với bước tiếp theo phức tạp hơn. Tôi biết làm thế nào để xây dựng các cửa sổ, vv (bằng tay, hoặc thông qua Glade) nhưng tôi không hiểu làm thế nào để buộc dòng chảy chương trình với nhau.Tôi có thể học thiết kế Gtk2 nâng cao (Perl) ở đâu?

Tôi sẵn sàng mua sách, v.v. nhưng tôi chỉ thấy những cuốn sách cho C (và không có trong kho, tôi phải yêu cầu chúng không nhìn thấy) và tôi lo lắng về sự khác biệt với Perl :: Gtk2 vẫn có thể thêm quá phức tạp. bất cứ ai có thể hoặc cung cấp cho tôi một ví dụ, hoặc chỉ cho tôi một hướng dẫn vv

Cảm ơn nhiều,

Adam

Trả lời

2

Tôi đã thực hiện phát triển Perl/GTK trong một vài năm và biết bạn đang nói gì. Gtk2 :: Ex :: FormFactory là một mô-đun gọn gàng nhưng không thực sự là điều của tôi và chắc chắn không cần thiết để xây dựng một ứng dụng Perl/GTK phức tạp. Tất cả các tiện ích, bao gồm cả cửa sổ, trong Perl/GTK đều hỗ trợ phương thức hiển thị/ẩn. Thêm vào đó bạn có thể có nhiều cửa sổ toplevel như bạn muốn và chỉ hiển thị và ẩn chúng khi cần thiết. Dưới đây là ví dụ đơn giản về việc chuyển đổi giữa nhiều cửa sổ:

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

Check-out Gtk2::Ex::FormFactory cho các văn bản phù hợp, các ứng dụng Gtk hướng dữ liệu, cũng nhìn here cho thêm thông tin. Về cơ bản Gtk2 :: Ex :: FormFactory giúp bạn xây dựng các ứng dụng thay vì màn hình đơn. Vì các widget Gtk2 :: Ex :: FormFactory là các trình bao bọc đơn giản trên các lớp Gtk2, và các lớp Perl Gtk2 là các trình bao bọc khá đơn giản trên các lớp C (ngoại trừ các thành ngữ được tạo ra nhiều hơn), kinh nghiệm cấp C trong các thư viện Gtk không nên nhầm lẫn bạn, trên thực tế, hướng dẫn sử dụng Gtk + 2 của perl giới thiệu bạn về số Gtk+2 Reference manual. Xem Gtk2::api để biết sự khác biệt.

Các vấn đề liên quan