Home

Klasy - Adnotacje - Drzewo - Funkcje - Powrót - Struktura

Rozdział 1: Witaj świecie!

Zrzut ekranu pierwszego programu

Nasz pierwszy program to nieśmiertelne Witaj świecie ! Zawiera niezbędne minimum potrzebne do uruchomienia aplikacji Qt. Obrazek powyżej przedstawia działający program.

/****************************************************************
**
** Qt tutorial 1
**
****************************************************************/

#include <qapplication.h>
#include <qpushbutton.h>

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QPushButton hello( "Hello world!", 0 );
    hello.resize( 100, 30 );

    a.setMainWidget( &hello );
    hello.show();
    return a.exec();
}

Analiza kodu linia po linii

    #include <qapplication.h>
Ta linia wprowadza do programu definicję klasy QApplication. W każdej aplikacji, która używa Qt musi być dokładnie jeden objekt QApplication. QApplication zarządza zasobami aplikacji takimi jak domyślna czcionka i kursor.
    #include <qpushbutton.h>
Ta linia wprowadza do programu definicję klasy QPushButton. Dokumentacja referencyjna dla każdej klasy mówi, który plik musi zaostac dla niej dołączony.

QPushButton jest klasycznym przyciskiem GUI, który użytkownik może wcisnąć i puścić. Zarządza swoim własnym wyglądem, tak jak i inne QWidgety. Widget jest objektem, częścią interfejsu użytkownika, który może przetwarzać dane użytkownika oraz rysowac grafikę. Programista może zmienić zarówno wygląd i styl oraz dużo innych pomniejszych właściwości takich jak kolor jak i również oraz to czy widget będzie pokazywał zawartość. QPushButton może pokazywać zarówno tekst jak i QPixmap.

    int main( int argc, char **argv )
    {
Funkcja main() to główna część każdego programu. Praktycznie zawsze przy uzyciu Qt, main() musi przeprowadzić tyko pewną inicjalizację, zanim odda kontrole bibliotece Qt, która mówi programowi o działaniach użytkownika poprzez wydarzenia (event).

argc to liczba zadanych programowi argumentów z linni komend, a argv jest zbiorem tych komend. Jest to własność C/C++. Nie jest specyficzna dla Qt jednakże Qt potrzebuje jej aby przetworzyć owe argumenty (patrz niżej).

        QApplication a( argc, argv );
a jest QApplication programu. Jest tworzona, a następnie przetwarza niektóre z argumentów z linni komend (takich jak -display pod X11). Zauważ, że wszystkie argumenty rozpoznane przez Qt są ususwane z argv (a argc jest odpowiednio pomniejszane). Zwróć się do QApplication::argv() po szczegóły.

Uwaga: Niezbędne jest aby objekt QApplication został utworzony zanim zostaną użyte jakiekolwiek inne funkcje systemu okien Qt.

        QPushButton hello( "Hello world!", 0 );
Tutaj, po QApplication, mamy pierwszy kod z systemu okien: Tworzony jest przycisk.

Przycisk ma wyświetlać tekst "Hello world!" i być oknem samym dla siebie (ponieważ konstruktor wskazuje na 0 okna rodzica, w którym powienien byc przycisk).

        hello.resize( 100, 30 );
Przycisk ma mieć 100 pikseli szerokości i 30 wyskości (plus systemowa ramka okna W tym przypadku nie będziemy się zajmować pozycją przycisku, przyjmijmy domyśne wartości.
        a.setMainWidget( &hello );
Przycisk został wybrany na główny widget dla aplikacji. Jeżeli użytkownik zamnkie główny widget nastąpi zakończenie programu.

Nie musisz mieć głównego widgetu, lecz większość aplikacji posiada go.

        hello.show();
Widget nigdy nie jest widzialny kiedy go tworzysz. Musisz wywołać show() aby go pokazać
        return a.exec();
To właśnie tu main() przekazuje kontrolę do Qt. exec() powróci gdy program zakończy działanie.

W exec(), Qt pobiera i przetwarza wydarzenia systemowe oraz te pochodzące od użytkownika i przekazuje je do odpowiednich widgetów.

    }

Zachowanie

Powinieneś teraz skompilować i uruchomić ten program.

Po uruchomieniu zobaczysz małe okienko wypełnione pojedycznym przyciskiem, a na nim słynne słowa: Hello, World !

Ćwiczenia

Spróbuj zmienić wielkość okna. Wciśnij guzik. Jeżeli pracujsz pod X11, spróbuj uruchomić go z opcją -geometry (np.: -geometry 100x200+10+20)

Możesz teraz przejść do drugiego rozdzału.

[Następny tutorial] [Główna strona tutoriala]



 
Copyright (c) 2000 Troll Tech Znaki towarowe
Wersja Qt 2.1.0