C++ Wykorzystaj potege aplikacji graficznych.pdf

(653 KB) Pobierz
C++. Wykorzystaj potęgę aplikacji graficznych
C++. Wykorzystaj potķgķ
Autor: Janusz Ganczarski,
Mariusz Owczarek
ISBN: 978-83-246-1473-8
Format: 158x235, stron: 448
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Napisz wieloplatformowe programy w C++
¤ Jak korzystaě z bibliotek wxWidgets oraz Qt?
¤ W jaki sposb implementowaě obsĀugķ zdarzeĺ w aplikacjach?
¤ Jak budowaě aplikacje sieciowe i bazodanowe?
Okres dominacji jednego systemu operacyjnego i przeznaczonych dla niego rozwiĴzaĺ
powoli odchodzi do historii. Fenomen popularnoľci rŃnych dystrybucji Linuksa
i coraz mocniejsza pozycja komputerw Mac sprawiajĴ, Ńe wiele firm produkujĴcych
oprogramowanie decyduje siķ na tworzenie rozwiĴzaĺ wieloplatformowych.
W przypadku ogromnych korporacji stworzenie zespoĀw programistycznych
pracujĴcych rwnolegle nad kilkoma wersjami jednej aplikacji dla rŃnych systemw
operacyjnych nie stanowi problemu, ale w mniejszych firmach jest to niemoŃliwe.
Tu z pomocĴ przychodzĴ biblioteki pozwalajĴce na tworzenie kodu łrdĀowego
prawidĀowo kompilujĴcego siķ na kaŃdej platformie, na ktrej je zainstalowano.
KsiĴŃka âC++. Wykorzystaj potķgķ aplikacji graficznychÒ opisuje tworzenie
oprogramowania z wykorzystaniem dwch takich wĀaľnie bibliotek Ï wxWidgets
oraz Qt. CzytajĴc jĴ, dowiesz siķ, jak wykorzystaě jķzyk C++ i ľrodowisko Dev-C++
do pisania programw, z ktrych korzystaě bķdĴ mogli uŃytkownicy systemu Windows,
Linuksa i Mac OS. Nauczysz siķ stosowaě kontrolki i komponenty, budowaě menu
i interfejsy uŃytkownika, obsĀugiwaě zdarzenia i implementowaě operacje graficzne.
Przeczytasz takŃe o aplikacjach bazodanowych i sieciowych. KaŃde z zagadnieĺ
omwiono zarwno w kontekľcie biblioteki wxWidgets, jak i biblioteki Qt, dziķki czemu
poznasz dwie metody rozwiĴzywania tych samych zadaĺ programistycznych Ï by
wybraě sobie tķ, ktra bardziej Ci odpowiada.
¤ Instalacja ľrodowiska programistycznego i bibliotek
¤ Struktura aplikacji i podstawowe komponenty
¤ Stosowanie komponentw
¤ ObsĀuga zdarzeĺ myszy i klawiatury
¤ Budowanie menu aplikacji
¤ Komunikacja sieciowa
¤ Operacje graficzne
¤ PoĀĴczenia z bazami danych
¤ Drukowanie z poziomu aplikacji
Dziķki tej ksiĴŃce stworzysz aplikacje,
ktre doceniĴ uŃytkownicy wszystkich systemw operacyjnych.
aplikacji graficznych
319877780.001.png 319877780.002.png 319877780.003.png 319877780.004.png
Spis treci
Rozdzia 1. Opis i instalacja bibliotek ................................................................. 9
Wstp ................................................................................................................................9
Biblioteka wxWidgets ......................................................................................................9
Instalacja rodowiska wxDev-C++ ...........................................................................10
Elementy wxDev-C++ ..............................................................................................10
Tworzenie projektu aplikacji w wxDev-C++ ...........................................................11
Biblioteka Qt ..................................................................................................................12
Instalacja Dev-C++ ..................................................................................................12
Instalacja bibliotek Qt ..............................................................................................12
Konfiguracja Dev-C++ do wspópracy z Qt .............................................................13
Tworzenie szablonu projektu aplikacji Qt ................................................................15
Rozdzia 2. Struktura aplikacji wxWidgets ........................................................ 19
Czci skadowe aplikacji ...............................................................................................19
Zgodno ze standardem Unicode ..................................................................................22
Tworzenie kontrolek .......................................................................................................23
Zdarzenia ........................................................................................................................24
Wizualne tworzenie aplikacji w rodowisku wxDev-C++ ..............................................26
Struktura projektu wykorzystywana podczas budowy aplikacji za pomoc IDE .....27
Nazwy parametrów uyte w ksice ...............................................................................28
Test .................................................................................................................................28
Rozdzia 3. Podstawowe komponenty aplikacji ................................................. 31
Okno wxFrame ...............................................................................................................31
Style okna .................................................................................................................32
Ikona w oknie aplikacji ............................................................................................33
Czcionki w aplikacji .................................................................................................34
Panele wxPanel ...............................................................................................................35
Przyciski wxButton ........................................................................................................36
Etykieta wxStaticText .....................................................................................................38
Pola wyboru i przyciski opcji .........................................................................................40
Komponent wprowadzania i edycji tekstu wxTextCtrl ...................................................44
Test .................................................................................................................................48
Rozdzia 4. Wicej o zdarzeniach ...................................................................... 49
Rodzaje zdarze ..............................................................................................................49
Dynamiczna obsuga zdarze .........................................................................................49
Rozpoznawanie obiektu generujcego zdarzenie w metodzie obsugi ............................53
4
C++. Wykorzystaj potg aplikacji graficznych
Obsuga zdarze myszy ..................................................................................................56
Obsuga zdarze klawiatury ...........................................................................................58
Test .................................................................................................................................61
Rozdzia 5. Zastosowania menu ....................................................................... 63
Podstawy menu ...............................................................................................................63
Obsuga menu za pomoc tabeli zdarze ........................................................................66
Obsuga menu za pomoc metody Connect() .................................................................68
Tworzenie menu podczas dziaania aplikacji ..................................................................70
Menu kontekstowe ..........................................................................................................73
Skróty klawiaturowe w opcjach menu ............................................................................75
Paski narzdzi .................................................................................................................77
Pasek statusu ...................................................................................................................81
Test .................................................................................................................................85
Rozdzia 6. Okna dialogowe ............................................................................. 87
Okna komunikatów ........................................................................................................87
Okno z moliwoci wprowadzania danych ...................................................................89
Zwyke okno do wprowadzania tekstu .....................................................................89
Okno hasa ................................................................................................................90
Okna zapisu i otwarcia pliku ..........................................................................................92
Okno wyboru czcionki ....................................................................................................94
Paleta kolorów ................................................................................................................96
Test .................................................................................................................................98
Rozdzia 7. Podstawy aplikacji sieciowych ...................................................... 101
Protokó FTP ................................................................................................................101
Logowanie do serwera i wywietlanie zawartoci katalogu ...................................101
Operacje na folderach i plikach ..............................................................................105
Pobieranie plików z serwera ...................................................................................107
Wysyanie plików z dysku lokalnego .....................................................................109
Protokó HTTP .............................................................................................................111
Pobieranie stron Web .............................................................................................111
Wywietlanie stron w postaci graficznej — komponent wxHtmlWindow .............113
Prezentacja wyników dziaania aplikacji w postaci HTML ....................................115
Komórki wxHtmlCell .............................................................................................118
Test ...............................................................................................................................122
Rozdzia 8. Grafika ......................................................................................... 125
Mapy bitowe wxBitmap ...............................................................................................125
Kontekst urzdzenia — klasa wxDC ............................................................................126
Rysowanie w oknie — kontekst wxClientDC ..............................................................128
Obsuga zdarzenia Paint — kontekst wxPaintDC .........................................................132
Rysowanie w pamici — wxMemoryDC .....................................................................134
Kontekst ekranu — wxScreenDC .................................................................................136
Pióro wxPen .................................................................................................................138
Pdzel wxBrush ............................................................................................................141
Podstawy obsugi biblioteki OpenGL w wxWidgets ....................................................143
Rysowanie obiektów trójwymiarowych .................................................................147
Animacje ................................................................................................................149
Test ...............................................................................................................................151
Spis treci
5
Rozdzia 9. Aplikacje baz danych .................................................................... 153
Bazy danych a wxWidgets ............................................................................................153
Instalacja PostgreSQL ..................................................................................................153
Inicjalizacja bazy ..........................................................................................................155
Organizacja i typy danych w bazach PostgreSQL ........................................................156
Jzyk SQL ....................................................................................................................158
Poczenie aplikacji wxWidgets z baz danych ............................................................158
Dodawanie tabel do bazy ..............................................................................................161
Zapis danych do tabeli ..................................................................................................165
Wyszukiwanie i odczyt danych z tabeli ........................................................................167
Zmiana wartoci w rekordach .......................................................................................171
Test ...............................................................................................................................172
Rozdzia 10. Drukowanie w wxWidgets ............................................................. 175
Drukowanie na rónych platformach ............................................................................175
Drukowanie tekstu ........................................................................................................175
Drukowanie tekstu z formatowaniem .....................................................................178
Podgld wydruku tekstu .........................................................................................180
Drukowanie grafiki .......................................................................................................181
Obiekt wydruku wxPrintout ...................................................................................181
Urzdzenie drukarki — klasa wxPrinter .................................................................183
Okno podgldu drukowania grafiki ........................................................................185
Skalowanie wydruku graficznego ..........................................................................187
Test ...............................................................................................................................191
Rozdzia 11. Elementy aplikacji wielowtkowych .............................................. 195
Wielowtkowo ..........................................................................................................195
Sekcje krytyczne ....................................................................................................196
Wzajemne wykluczenia ..........................................................................................196
Semafory ................................................................................................................196
Klasa wxThread ............................................................................................................196
Sekcja krytyczna — wxCriticalSection ........................................................................198
Wykluczenie wxMutex .................................................................................................199
Semafor wxSemaphore .................................................................................................199
Prosta aplikacja z kilkoma wtkami .............................................................................200
Przekazywanie danych z wtku poprzez zdarzenia ......................................................204
Ograniczenie iloci wtków za pomoc semafora ........................................................205
Test ...............................................................................................................................207
Rozdzia 12. Struktura aplikacji Qt ................................................................... 209
Korzystamy z szablonu .................................................................................................209
Pierwszy program krok po kroku ..................................................................................211
Wywietlamy polskie znaki ..........................................................................................212
Podstawy hierarchii elementów interfejsu uytkownika ...............................................214
Tworzenie wasnej klasy okna ......................................................................................216
Qt Designer ...................................................................................................................218
Integracja Qt Designer i Dev-C++ ................................................................................221
Wykorzystanie formularzy w programach ....................................................................222
Test ...............................................................................................................................228
6
C++. Wykorzystaj potg aplikacji graficznych
Rozdzia 13. Podstawowe komponenty aplikacji ............................................... 229
Klasa QMainWindow ...................................................................................................229
Rozpoczynamy budow edytora tekstu ........................................................................229
Rodzaje okien ...............................................................................................................232
Ikona aplikacji i zasoby ................................................................................................234
Menu .............................................................................................................................236
Klawisze skrótu ......................................................................................................238
Komunikaty na pasku statusu .................................................................................239
Pasek statusu .................................................................................................................241
Pasek narzdzi ..............................................................................................................242
Wygld paska narzdzi ...........................................................................................242
Dodajemy wasne gniazda ............................................................................................244
Edytor tekstu — formularz w Qt Designer ...................................................................247
Klasa QString ...............................................................................................................250
Test ...............................................................................................................................253
Rozdzia 14. Wicej o zdarzeniach .................................................................... 255
Sygnay i gniazda .........................................................................................................255
Metaobiekty ............................................................................................................255
Definiowanie gniazd ..............................................................................................256
Definiowanie oraz emitowanie sygnaów ...............................................................257
Kompilator MOC ...................................................................................................257
Definiowanie pocze ...........................................................................................258
Usuwanie pocze .................................................................................................260
Dynamiczna obsuga pocze ...............................................................................260
Program przykadowy ............................................................................................261
Obsuga zdarze ...........................................................................................................262
Rodzaje zdarze .....................................................................................................263
Informacje przekazywane przy zdarzeniach ...........................................................263
Selektywna obsuga zdarze ...................................................................................267
Test ...............................................................................................................................269
Rozdzia 15. Zastosowania menu ..................................................................... 271
Menu wielopoziomowe ................................................................................................271
Zmiana parametrów czcionki w menu ..........................................................................273
Waciwoci elementów menu, sygnay i gniazda ........................................................276
Grupowanie elementów menu ......................................................................................279
Menu podrczne programu ...........................................................................................282
Dynamiczne tworzenie elementów menu .....................................................................284
Test ...............................................................................................................................285
Rozdzia 16. Okna dialogowe ........................................................................... 287
Okna komunikatów ......................................................................................................287
Okna pobierania danych ...............................................................................................296
Okna narzdziowe ........................................................................................................299
Okno wyboru koloru ..............................................................................................300
Okno wyboru czcionki ...........................................................................................302
Obsuga plików i folderów .....................................................................................303
Test ...............................................................................................................................306
Rozdzia 17. Podstawy aplikacji sieciowych ...................................................... 307
Obsuga protokóu FTP ................................................................................................307
Operacje na serwerze FTP ......................................................................................307
Sygnay klasy QFtp ................................................................................................309
Zgłoś jeśli naruszono regulamin