PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl Tk - część VI
  przez wrares (78 odsłon)
Dziś wykorzystamy GUI Builder..., aby wspomógł Nas w tworzeniu interfejsów graficznych, podobnie jak DELPHI lub narzędzia Microsoftu. Na początek spójrzcie na zdjęcie..., bo taką formatkę będziemy budować. Formatka została przetestowana w systemach Win32, Linux (Poldek, Kubuntu). W tym projekcie wykorzystaliśmy rozwiązania poruszane w Naszym portalu

1) Okna Dialogowe -  spójrz tutaj...

2) Tabela  -  spójrz tutaj...



Tak jak wspomnieliśmy powyżej, przy budowie formatki skorzystamy z pomocy jaką oferuje GUI Builder. Konstrukcję pokazujemy tutaj.... Ustawianie komponentów na formatce nie jest zadaniem trudny. Kierujemy się ogólnymi wskazaniami jakie oferuje Tk. Jak tworzymy taką formatkę.

Cytat:


1) Uruchamiamy GUI Buildera

2) Dostajemy wybór - w jakim języku programowania oraz jaki zestaw narzędzi GUI preferujemy - my wybraliśmy Perl/Tk

3) Wyczytujemy nasz opis formatki - note.ui

4) W środowisku pojawia się Nasza formatka

5) Formatka zapisywana jest w trzech plikach

a) note.pl

b) note.ui

c) note_ui.pm


6) Pliki są dostępne w naszym portalu



Na początku kilka uwag, bardzo ważnych

Cytat:

1) Projektując formatkę nie zapisujemy kodu w języku Perl

2) Każdy ponowny zapis formatki zmienia zawartość pliku note.pl, ale tylko w tych fragmentach, które nie mają swoich procedur w pliku note_ui.pm. Warto na to zwrócić uwagę

3) Sposób zachowania komponentów, obsługa procedur itp. , dokonywana jest w pliki note.pl, który edytujemy w dowolnym, ulubionym edytorze.



Teraz rozpoczynamy omawianie pliku note.pl, który będzie obsługiwał Nasze komponenty. Plik który jest generowany przez GUI Builder, jest szablonem który musimy zmienić.

package note;

use utf8;
use Tk::Dialog;
use Tk::HList;

my (%pracownicy) = ();

%pracownicy = (
            11 =>  [11,"Buraczek","Jan","1247,37 zł"],
            17 =>  [17,"Kartofelek","Paweł","1248,22 zł"],
            22 =>  [22,"Pietruszka","Agata","1578,98 zł"],
            67 =>  [67,"Marchewka","Katarzyna","2178,56 zł"],                  
);


Założyliśmy że kodowanie będzie w utf8. Chcemy wykorzystać komponent Dialogu oferowany przez Tk. Zbudujemy listę Naszych potencjalnych pracowników i umieścimy ją w HList.

sub przycisk_a_command {
    
my $p = $top->Dialog(
                 -title => 'Rysowanie Punktu ?',
                 -text  => "Czy jesteś pewien że chcesz narysować\npunkt ?",
                 -default_button => 'Nie',
                 -bitmap => 'info',
                 -buttons        => ['Nie','Tak']
                       );
my $wybor = $p->Show;

    if ($wybor eq 'Tak') {
        print "Rysujemy Punkt\n";
    }
    
}


Na formatce dodaliśmy kilka przycisków od A do E, i chcemy aby naciśnięcie każdego z nich, uruchomiło okno dialogowe.

note::userinit() if defined ¬e::userinit;

our $top = MainWindow->new();

$top->title("Kartoteka Pracownicza - Portal Perlgtk.pl - Programował wrares 19/03/2010");
$top->resizable(0,0);
$top->geometry('+200+50');


note::ui($top);

my $hlist = $ramka_tabelka->HList(-columns => 4, -header => 1)
            ->pack(-expand => 1, -fill => 'both');

$hlist->headerCreate(0, -text => "Numer");
$hlist->headerCreate(1, -text => "Nazwisko");
$hlist->headerCreate(2, -text => "Imię");
$hlist->headerCreate(3, -text => "Stawka");


foreach my $pracownicy (sort keys %pracownicy) {
  
  my $numer      = $pracownicy{$pracownicy}[0];  
  my $nazwisko   = $pracownicy{$pracownicy}[1];  
  my $imie       = $pracownicy{$pracownicy}[2];  
  my $stawka     = $pracownicy{$pracownicy}[3];  
  
  
    
  $hlist->add($pracownicy);
  $hlist->itemCreate($pracownicy, 0, -text => $numer);
  $hlist->itemCreate($pracownicy, 1, -text => sprintf "%s", $nazwisko);
  $hlist->itemCreate($pracownicy, 2, -text => sprintf "%s", $imie);
  $hlist->itemCreate($pracownicy, 3, -text => sprintf "%s", $stawka);
 
}

note::run() if defined ¬e::run;

Tk::MainLoop();


Nadaliśmy nową nazwę formatce, zabezpieczyliśmy ją przed zmianą rozmiarów, ustaliliśmy w którym miejscu ekranu ma się pojawić. Następnym krokiem jest konstrukcja listy z grupą Naszych pracowników. Czynności te wykonujemy w edytorze pisząc kod programu w Perlu. Poniżej zamieszczamy link do spakowanego pliku, w którym znajdują się źródła formatki. Link dostępny jest tutaj... dla pliku note.zip
Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :