Qt - podstawowe cechy

Transkrypt

Qt - podstawowe cechy
Qt - podstawowe cechy
Bogdan Kreczmer
ZPCiR ICT PWR
pokój 307 budynek C3
[email protected]
Copyright c 2003 Bogdan Kreczmer
Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udost˛epiony pod
warunkiem wykorzystania wyłacznie
˛
do własnych prywatnych potrzeb i może on by ć kopiowany wyłacznie
˛
w całości, razem
Rozszerzenia C++ dla Qt
Przykład definicji klasy dla C++
class BardzoProstaKlasa
{
private:
int Wartosc;
public:
BardzoProstaKlasa();
int pobierzWartosc() const { return Wartosc; }
void wstawWartosc( int );
};
Przykład definicji klasy dla Qt
class BardzoProstaKlasa z Qt : public QObject
{
Q OBJECT
private:
int Wartosc;
public:
BardzoProstaKlasa z Qt();
int pobierzWartosc() const { return Wartosc; }
public slots:
void wstawWartosc( int );
signals:
void zmianaWartosci( int );
};
Emisja sygnału
void BardzoProstaKlasa::wstawWartosc( int NowaWartosc )
{
if ( Wartosc != NowaWartosc )
emit zmianaWartosci( Wartosc = NowaWartosc );
}
BardzoProstaKlasa Obiekt A, Obiekt B;
connect( &ObiektA, SIGNAL( zmianaWartosci(int) ),
&ObiektB, SLOT( wstawWartosc(int) )
);
Obiekt B.wstawWartosc( 11 );
Obiekt A.wstawWartosc( 79 );
// Emisja sygnału do ...
// Emisja sygnału do obiektu B
Obiekt B.pobierzWartosc();
// Zamiast 11 jest 79
Obiekt B.wstawWartosc( 11 );
// Emisja sygnału do ...
Obiekt A.pobierzWartosc();
// Tutaj wciaz jest 79
Konstrukcja typu “CALLBACK”
Przycisk
Funkcja
Obslugi
Zdarzenia
Rys. 1. Powiazanie
˛
obiektu z jedna˛ funkcja˛ obsługujac
˛ a˛ zdarzenia
dost˛epne poprzez dany obiekt.
Poglaskaj
Uderz
Uderz mocno
Daj spokoj
i tak juz mu
nic nie pomoze
Przycisk
Funkcja
Obslugi
Zdarzenia
Rys. 2. Parametry przekazywane wraz ze zdarzeniem pozwalaja˛ na jego
identyfikacje i właściwy dobór akcji.
Idea tworzenia polaczeń
Rys. 1. Każde z istniejacych
˛
połaczeń
˛
nie zależy od żadnego innego połaczenia.
˛
Przycisk
Rys. 2. Przesłanie sygnału wiaże
˛ si˛e z zainicjowaniem akcji dla obiektu,
do którego wysłany został sygnał.
Przeglad
˛ podstawowych klas biblioteki Qt
KOMPONENTY
FINALNE
GUI
– Klasy aplikacji,
– Kontrolki (Widgets),
– Dialogi,
– Zarzadzanie
˛
geometria˛ obiektów.
KOMPONENTY
BAZOWE
GUI
– Kontrolki abstrakcyjne,
– Klasy operacji rysowania,
– Klasy czcionek,
– Jadro,
˛
– Inne przydatne klasy.
KOMPONENTY
POMOCNICZE
(ang. Utilities)
– Ogólne klasy narz˛edzi,
– Klasy operacji I/O,
– Klasy operacji na obrazach,
– Klasy daty i czasu.
Wybrane komponenty finalne
K LASY
APLIKACJI
GUI (Graficznego Interfejsu Użytkownika)
QMainWindow : Typowe okno z menu, listwa˛
narz˛edziowa,
˛ i listwa˛ statusu,
QMenuBar
: Horyzontalna listwa menu,
QStatusBar : Horyzontalna listwa komunikatow,
QToolBar
: Listwa narz˛edziowa,
QToolTip
: Narz˛edzia do “dymków”,
QWhatsThis : Narz˛edzia dla podpowiedzi.
KONTROLKI
QButtonGroup: Tworzenie grupy klawiszy,
QFrame
: Bazowa klasa kontrolek,
QListBox
: Przewijana lista jednokolumnowa,
QSlider
: Horyzontalne i wertykalne suwaki,
D IALOGI
QDialog
: Bazowa klasa okna dialogowego,
QFileDialog : Dialog dla nazwy pliku,
QMessageBox : Krótki komunikat i kilka klawiszy,
QProgressDialog: Wizualizacja stopnia zaawansowania,
Z ARZ ADZANIE
˛
GEOMETRI A˛ OBIEKTÓW
QBoxLayout : Układa potomne kontrolki w rz˛edach lub
kolumnach,
QGridLayout : Układa kontrolki w zadanej kracie,
Wybrane komponenty bazowe
KONTROLKI
ABSTRAKCYJNE
QButton
QMenuBar
QFrame
QTableView
QWidget
K LASY
Bazowa klasa dla przycisku,
Horyzontalna listwa menu,
Klasa bazowa kontrolki z opcjonalna obwodka,
Klasa bazowa dla tabel,
Klasa bazowa wszystkich kontrolek.
OPERACJI RYSOWANIA
QBitmap
QBrush
QPixmap
QPainter
K LASY
:
:
:
:
:
:
:
:
:
Monochromatyczna mapa pikselowa,
Definiuje wzorzec wypełniania,
Mapa pikselowa,
Realizuje właściwe rysowanie
CZCIONEK
QFont
QFileInfo
: Wyznacza czcionk˛e do rysowania,
: Ogólna informacja o czcionce.
JADRO
˛
QAccel
: Obsługa akcelelatorów (skrótów),
QApplication: Zarzadza
˛
kolejka zdarzeń,
QObject
: Klasa bazowa dla klas Qt majacych
˛
dost˛ep
do sygnałów, slotów i zdarzeń.
I NNE
PRZYDATNE KLASY
QIconSet
: Zbiór ikon (np. dla klawiszy),
QRangeControl: Kontrola zakresu dla liczb całkowitych.
Wybrane komponenty pomocnicze
O GÓLNE
KLASY NARZ EDZI
˛
QArray
: Wzorzec tablicy dla typów prostych,
QList
: Wzorzec listy dwukiernkowej,
QQueue
: Wzorzec kolejki,
QString
: Klasa ciagów
˛
znakowych.
K LASY
OPERACJI
I/O
QFile
: Operacje na plikach,
QIODevice
: Operacje na urzadzeniach
˛
I/O,
QImageIO
: Zawiera parametry dla operacji wczytywania i zapisu obrazów,
QSocketNotifier: Wspmaga połaczenia
˛
poprzez gniazdka
K LASY
OPERACJI NA OBRAZACH
QImage
: Mapa pikselwa sprz˛etowo niezależna z bezpośrednim dost˛epem do pikseli,
QMovie
: Wspomaganie animacji (ładowanie obrazów
po określonej przerwie).
K LASY
DATY I CZASU
QData
: Obsługa odczytu daty,
QTime
: Obsługa odczytu czasu,
QTimer
: Generowanie periodycznych sygnałów.
Najprostszy program w Qt
#include
#include
qapplication.h qmessagebox.h int main( int argc, char argv )
{
QApplication app( argc, argv );
QMessageBox Message("Wazne pytanie","Byc albo nie byc ?",
QMessageBox::Critical,
QMessageBox::Yes,
QMessageBox::No,0);
return Message.exec();
}

Podobne dokumenty