Qt logo


Kapitola 1: Hello, World!


Screenshot of tutoriálu č. one

Tento prvý program je jednoduchý hello-world príklad. Obsahuje iba holý základ, ktorý potrebujete na vybudovanie a spustenie Qt aplikácie. Obrázok hore je screenshot tohoto programu.

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

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

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

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

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

Prechádzka riadok po riadku.

    #include <qapplication.h>

Tento riadok vloží definíciu triedy QApplication. V každej aplikácii, ktorá používa Qt, by mal byť práve jeden objekt QApplication. QApplication spravuje rôzne aplikačné zdroje, ako napríklad defaultný font a kurzor.

    #include <qpushbutton.h>

Tento riadok vloží definíciu triedy QPushButton. V referenčnej dokumentácii sa pre každú triedu uvádza, ktorý súbor treba vložiť, aby mohla byť daná trieda použitá.

QPushButton je klasické GUI tlačidlo, ktoré môže užívateľ stlačiť a pustiť. Spravuje si svoj vlastný vzhľad, ako mnoho iných widgetov. Widget je objekt užívateľského prostredia, ktorý môže spracúvať vstupy od užívateľa a kresliť grafiku. Programátor môže zmeniť celkový vzhľad widgetu alebo mnoho jeho dielčich vlastnosti, ako napríklad farbu, rovnako ako obsah widgetu. QPushButton môže zobraziť text alebo pixmapu.

    int main( int argc, char **argv )
    {

Funkcia main() je vstupný bod programu. Takmer vždy pri použití Qt, main() potrebuje vykonať len niektoré inicializácie, kým odovzdá riadenie knižnici Qt, ktorá potom dáva správy programu o užívateľových akciách cestou udalostí.

argc je počet argumentov programu na príkazovom riadku a argv je pole týchto argumentov. Toto je vlastnosť C/C++. Nie je to špecifické pre Qt, ale Qt potrebuje spracovať tieto argumenty (viď nižšie).

        QApplication a( argc, argv );

a je objekt QApplication tohoto programu. Tu je vytvorený a spracuje niektoré argumenty z príkazového riadku (ako napr. -display pod X11). Poznamenajte si, že všetky argumenty príkazového riadku rozpoznané Qt sú z argv odstránené (a hodnota argc je primerane znížená). Viď QApplication::argv() dokumentáciu pre detaily.

Poznámka: Je dôležité, aby bol objekt QApplication vytvorený pred použitím akejkoľvek okennej časti Qt.

        QPushButton hello( "Hello world!" );

Tu, po QApplication, prichádza prvý okenný kód: je vytvorené tlačidlo.

Tlačidlo je nastavené, aby zobrazovalo text "Hello world!" a aby bolo svojím vlastným oknom (pretože v konštruktore nie je špecifikované žiadne iné okno, ktorého súčasťou by mal byť).

        hello.resize( 100, 30 );

Tlačidlo je nastavené, aby bolo 100 bodov (pixelov) široké a 30 bodov vysoké (plus systémový rám okna). V tomto prípade sa nestaráme o pozíciu tlačidla a akceptujeme defaultnú hodnotu.

        a.setMainWidget( &hello );

Tlačidlo je zvolené ako hlavný widget pre túto aplikáciu. Ak užívateľ zavrie hlavný widget, aplikácia skončí.

Nepotrebujete mať hlavný widget, ale väčšina programov ho má.

        hello.show();

Widget nie je nikdy viditeľný hneď ako ho vytvoríte. Musíte zavolať show(), aby ste ho zviditeľnili.

        return a.exec();

Toto je miesto, kde main() odovzdáva riadenie Qt. exec() skončí, keď skončí aplikácia.

V exec(), Qt príjma a spracuváva udalosti od užívateľa a systému a posúva ich príslušným widgetom.

    }

Správanie

Mali by ste si skúsiť skompilovať a spustiť tento program.

Keď ho spustíte, uvidíte malé okno vyplnené jediným talčidlom, a na ňom napísané slávne slová "Hello World!".

Cvičenia

Skúste zmeniť veľkosť okna. Stlačte tlačidlo. Ak bežíte pod X11, skúste spustiť program s prepínačom -geometry (napr. -geometry 100x200+10+20).

Teraz môžete ísť na kapitolu dva.

[Ďalší tutoriál] [Hlavná stránka tutoriálu]


Copyright © 1998 Troll TechTrademarks
Qt version 1.42