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(); }