Home

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

Rozdział 3: Wartości rodzinne

Screenshot of tutorial three

Ten prosty przykład pokaże jak tworzyć widgety matki i dzieci.

Aby uprościć sprawę użyjemy tylko jednej matki (wartości rodzinne, co ?) oraz samotne dziecko.

/****************************************************************
**
** Qt tutorial 3
**
****************************************************************/

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

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

    QVBox box;
    box.resize( 200, 120 );

    QPushButton quit( "Quit", &box );
    quit.setFont( QFont( "Times", 18, QFont::Bold ) );

    QObject::connect( &quit, SIGNAL(clicked()), &a, SLOT(quit()) );

    a.setMainWidget( &box );
    box.show();

    return a.exec();
}

Analiza kodu linia po linii

    #include <qvbox.h>
Dodajemy linię z qvbox.h, tak aby użyć klasy jakiej będziemy tu potrzebować.
        QVBox box;
Tutaj tworzymy prosty pionowy pojemnik prostokątny (box). QVBox ustawia swoje dziecięce widgety w pionowym rzędzie, jeden ponad drugim, zarządzajać miejcem według  QWidget::sizePolicy() każdego dziecka.
        box.resize( 200, 120 );
Ustawiamy jego szerokość na 200 pikseli a wysokość na 120.
        QPushButton quit( "Quit", &box );
Rodzi się dziecko.

Ów QPushButton tworzony jest zarówno z tekstem "Quit", jak i matką - prostokątem. Widget dziecka znajduje się zawsze na szczycie swojej matki. Kiedy jest wyświetlany jest zasłaniany przez granice matki.

Widget matka QVBox, automatycznie dodaje dziecko wycentrowane w swoim prostokącie. Ponieważ nie dodajemy niczego innego dziecko wypełnia całą wolną przestrzeń matki.

        box.show();
Kiedy widget matki ukazuje się, wywołuje funkcję pojawiania się wszytkich swoich dzieci (oprócz tych, na których wywołałeś explicite QWidget::hide()).

Zachowanie

Guzik nie wypełnia już całego widgetu. Miast tego otrzymuje bardziej naturalny rozmiar. Dzieje się tak dlatego, ponieważ mamy teraz nowy widget główny, który zarządza wyglądem, tak aby ustawić odopwiedni rozmiar oraz miejsce przycisku.

Ćwiczenia

Spróbuj zmienić rozmiar okna. Jak zmienia przycisk? Co wpływa na zmianę rozmiaru przycisku? Co by się stało, gdybyć spróbował naprawdę zmniejszyć okno?

Możesz teraz przejść do  czwartego rozdziału.

[Poprzedni tutorial] [Następny tutorial] [Głowna strona tutoriala]



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