PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl Tk - część II
  przez wrares (106 odsłon)
Załóżmy że mamy blat stołu lub biurka, a na nim położoną kartkę papieru. Pokolorowaliśmy ja farbkami na jednolity kolor, ustaliliśmy jak długie i szerokie będą boki, czy będziemy mogli je zwężać lub rozszerzać, składając, zaginając lub rozwijając do wymaganych wymiarów. Wszytko ładnie tylko mało przydatne. Czas coś położyć na tej kartce. Ale co i w jaki sposób. Patrząc na ofertę Tk jest wiele takich przedmiotów które możemy położyć na formatce.
Ustawiając elementy musimy skorzystać z pomocnika jakim jest Menadżer Geometrii. Mamy kilku taki menadżerów
Cytat:

=> pack

=> place

=> grid

=> form



Menadżerowie pomagają Nam układać elementy, tak jak układa się puzzle. Wiedzą gdzie elementy postawić, z której strony, tak aby na siebie nie zachodziły. Dlatego warto na kartce papieru najpierw rozplanować ich ułożenie, a dopiero później pisać kod. Dlatego podstawową zasadą układania komponentów jest
Cytat:

1) Najpierw staramy się opisać komponent (wielkość, kolor, szerokość, itp)

2) Następnie używamy menadżera, aby pomógł Nam ustawić komponent na formatce



W swojej pracy wykorzystamy formatkę zbudowaną w poprzednim artykule. Na początku dodamy do niej przyciski używając menadżera z bez parametrów, a następnie z menadżerem pack z parametrami.
#!/usr/bin/perl

use warnings;
use strict;
use utf8;


require Tk;
use Tk;


my $mw = MainWindow->new();
#ustawiamy

#tytuł formatki
$mw->title("Portal PerlGtk Was Wita");

#minimalna szerokość i wysokość podana w pikselach
$mw->minsize(qw(300 300));

#maksymalna szerokość i wysokość podana w pikselach
$mw->maxsize(qw(400 400));

#w którym miejscu na ekranie będzie wyświetlona podana w pikselach
$mw->geometry('+400+250');

#czy możemy rozciągać szerokość lub wysokość
#zmieniajcie z 1 na 0 i odwrotnie
$mw->resizable(1,1);

#kolor naszego tła red, white, green ,yellow 
$mw->configure(-background => 'yellow');

#dodajemy dwa przyciski i jedną etykietę
#oraz dekorujemy je  

$mw->Button(-text => "Pierwszy",
            -background => 'red',
            -cursor => 'boat',
            -width => 50)->pack();

$mw->Button(-text => "Drugi",
            -background => 'blue',
            -cursor => 'heart',
            -height => 20,
            )->pack();

$mw->Label(-text => "To jest portal Perlgtk. Poratl dostarcza wiadomości o \n
           ekosystemie Perla, dlatego jest dobre",
           -background => 'yellow',
           -cursor => 'pencil')->pack();



MainLoop();


Należy zwrócić uwagę na pewne zasady
Cytat:

1) Nie korzystając z ustawień menadżera, korzystamy z domyślnego sposobu ustawień.

2) Kładąc komponenty na formatce, obowiązuje zasada kto pierwszy ten lepszy czyli wstawianie komponentów zaczyna się do samej góry formatki, posuwając się w dół.

3) Właściwości każdego komponentu podane są w dokumentacji, która podaliśmy w pierwszym artykule, w zasobach CPAN lub internecie


Poniższy przykład wykorzystuje menadżera do ustawienia w określonym miejscu Naszych komponentów. Należy zauważyć że napis został przycięty, Spowodowane jest to zachłannym zajęciem miejsca przez przyciski, gdyż nie tylko zajmują obrys który widzimy, ale także prostokątną powierzchnię z góry na dół.
#!/usr/bin/perl

use warnings;
use strict;
use utf8;


require Tk;
use Tk;


my $mw = MainWindow->new();
#ustawiamy

#tytuł formatki
$mw->title("Portal PerlGtk Was Wita");

#minimalna szerokość i wysokość podana w pikselach
$mw->minsize(qw(300 300));

#maksymalna szerokość i wysokość podana w pikselach
$mw->maxsize(qw(400 400));

#w którym miejscu na ekranie będzie wyświetlona podana w pikselach
$mw->geometry('+400+250');

#czy możemy rozciągać szerokość lub wysokość
#zmieniajcie z 1 na 0 i odwrotnie
$mw->resizable(1,1);

#kolor naszego tła red, white, green ,yellow 
$mw->configure(-background => 'yellow');

#dodajemy dwa przyciski i jedną etykietę
#oraz dekorujemy je  

$mw->Button(-text => "Pierwszy",
            -background => 'red',
            -cursor => 'boat',
            -width => 20
            )->pack(-side => 'left', -anchor => 'nw');

$mw->Button(-text => "Drugi",
            -background => 'blue',
            -cursor => 'heart',
            -width => 20
            )->pack(-side => 'right', -anchor => 'se');

$mw->Label(-text => "To jest portal Perlgtk. Poratl dostarcza wiadomości o \n
           ekosystemie Perla, dlatego jest dobre",
           -background => 'yellow',
           -cursor => 'pencil',
           )->pack(-side => 'left');



MainLoop();


Na koniec krótki przykład, który możecie wykorzystać w swoich programach. Jest to taki przybornik z przyciskami.
#!/usr/bin/perl

use warnings;
use strict;
use utf8;


require Tk;
use Tk;


my $mw = MainWindow->new();
#ustawiamy

#tytuł formatki
$mw->title("AutoCad");

#w którym miejscu na ekranie będzie wyświetlona podana w pikselach
$mw->geometry('+400+250');

#czy możemy rozciągać szerokość lub wysokość
#zmieniajcie z 1 na 0 i odwrotnie
$mw->resizable(0,0);

#kolor naszego tła red, white, green ,yellow 
$mw->configure(-background => 'yellow');

$mw->Button(-text => 'Punkt',-width => 20)->pack();
$mw->Button(-text => 'Linia',-width => 20)->pack();
$mw->Button(-text => 'Łuk  ',-width => 20)->pack();
$mw->Button(-text => 'Krzywa',-width => 20)->pack();
$mw->Button(-text => 'Okrąg  ',-width => 20)->pack();
$mw->Button(-text => 'Koło',-width => 20)->pack();

MainLoop();


W portalu jest dostępny kod trzech powyższych programów. Można go pobrać z tej strony...
Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :