PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl Win32-GUI - Część 2
  przez wrares (104 odsłon)
Dziś napiszemy pierwszą formatkę, na której umieścimy przykładowe komponenty. Na początku krótkie omówienie struktury programu. Skrypty podzielone są na funkcjonalne bloki, które odpowiadają za zarządzanie całością.
use Win32::API;
use Win32::GUI();
use Encode;


Dołączamy moduły, niezbędne do działania programu. Tekst programu został zapisany w stronie kodowej Win-1250. Formatka powinna wyświetlić prawidłowo znaki kodowe.

# Tworzenie okna oraz jego zapis w zmiennej $głowne
my $glowne = Win32::GUI::Window->new(
	-name   => 'Main',
	-width  => 300,
	-height => 300,
        -text   => "Portal http://PerlGtk.pl",
);



Tworzymy okno, określamy właściwości, umieszczamy w określonym miejscu na pulpicie.

# Dodanie etykiety do okna
# zaczynając od lewej strony tego okna
$glowne->AddLabel(
	-text => "Witaj Świecie",
);


Dodajemy do okna etykietę, z lewej strony oraz definiujemy tekst etykiety.

# Pokaż nasze okno na ekranie
$glowne->Show();


Najwyższy czas pokazać Nasze okno na pulpicie.

# Wprowadź nasze okno w pętlę obsługi
# zadań, która jest w fazie dialogu
Win32::GUI::Dialog();


Okno musi pracować w pętli, aby odbierać zadania od różnych nadawców, obsłużyć prawidłowo nasłuch.


# Poprawne zakończenie programu
# Return -1 to zakończenie programu
# poprzez powrót do programu który go wywołał
sub Main_Terminate {
	return -1;
}



Dobrze jest powrócić z kodem sukcesu po zakończeniu działania Naszej aplikacji. Przykład ten jest ilustracją najbardziej podstawowych elementów GUI. Teraz chcielibyśmy położyć na formatce inne komponenty, dostępne w bibliotekach. Konieczna staje się obsługa związana z działaniem przeprowadzanym na komponentach, czyli wykonywaniem akcji z ich udziałem.

use strict;
use warnings;

use Win32::API;
use Win32::GUI();
use Encode;


Deklaracja standardowych bibliotek, które umożliwią działanie GUI.

my $dos = Win32::GUI::GetPerlWindow();
Win32::GUI::Hide($dos);


Pobierz środowisko wywołania i ukryj okno DOS w trakcie działania aplikacji.

my $glowne = Win32::GUI::Window->new(
                -name   => 'Main',
                -title  => 'Zestawienie informacji',
                -left    => 100,
                -top     => 100,
                -width   => 600,
                -height  => 400,
        );
    $glowne->AddLabel(-text => "testowa formatka dla Potrzeb portlau Perlgtk.pl");
    
my $numer = $glowne->AddTextfield(
        -name   => "Numer",
        -left   => 150,
        -top    =>  50,
        -width  => 30,
        -height => 20,
        -prompt => "Numer Pracownika:",
    );

    
my $nazwisko = $glowne->AddTextfield(
        -name   => "Nazwisko",
        -left   => 150,
        -top    =>  80,
        -width  => 100,
        -height => 20,
        -prompt => "Nazwisko Pracownika:",
    );

    
my $imie = $glowne->AddTextfield(
        -name   => "Imie",
        -left   => 150,
        -top    => 110,
        -width  => 100,
        -height => 20,
        -prompt => "Imię Pracownika:",
    );

    
my $przycisk = $glowne->AddButton (
        -name   => "Akceptacja",
        -left   => 150,
        -top    => 300,
        -width  => 60,
        -height => 40,
        -flat   => 1,
        -text   => 'Akceptuj',
        
    );



$przycisk = $glowne->AddButton (
        -name   => "Czysc",
        -left   => 250,
        -top    => 300,
        -width  => 60,
        -height => 40,
        -flat   => 1,
        -text   => 'Czyść',
        
    );


my $combo = $glowne->AddCombobox(
        -name       => "Zestaw",
        -left       => 150,
        -top        => 200,
        -width      => 80,
        -height     => 20,
        -dropdown   => 1, 
);

$combo->Add("Kowlaski","Burak","Pietruszka","Marchewka");
    

my $data_time = $glowne->AddDateTime(
        -name       => "Data",
        -left       => 250,
        -top        => 200,
        -width      => 80,
        -height     => 20,
);


my $listb = $glowne->AddListbox(
        -name       => "Listb",
        -left       => 350,
        -top        => 200,
        -width      => 80,
        -height     => 80,
        -multicolumn => 1, 
);

$listb->Add("Kowlaski","Burak","Pietruszka","Marchewka");



Tworzymy komponenty, ustalamy ich pozycje, wartości początkowe oraz nazwy.

sub Akceptacja_Click {
    
    print "Portal Perlgtk.pl!\n";
    
}


sub Czysc_Click {
       
    $numer->SelectAll();   
    $nazwisko->SelectAll();
    $imie->SelectAll();
    
    $numer->Clear();
    $nazwisko->Clear();
    $imie->Clear();
    
}



Nadajemy im możliwość obsługi. Jeśli wpiszemy coś w pola tekstowe, to klikając lewym przyciskiem myszki na komponent przycisku o nazwie Czyść, zawartość pól tekstowych zostanie wyczyszczona. Jeśli wybierzemy przycisk Akceptuj, to otrzymamy tekst w oknie shella.

Win32::GUI::Show($dos);


Po zakończonej aplikacji, chcielibyśmy otrzymać z powrotem, nasze okno shella. Skrypty dostępne są w Naszym portalu na stronie.... Podgląd aplikacji dostępny jest na tej stronie...
Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :