Tétel adatlapja

CÍMLAP

Varga Péter

Qt strandkönyv

TARTALOM, BEVEZETÉS



Tartalom

Bevezetés
Miért pont Qt?
Néhány egyéb tudnivaló

1. Pár szó az eseményvezérelt programokról

2. Első programunk. Igen, a "Helló világ!", de kicsit bővebben
2.1. A grafikus objektumok és a Property Editor
2.2. A signals and slots mechanizmus
2.3. Elég a kattintgatásból!

3. Saját signal és slot megvalósítása - meg egy kis QDebug és QMap
3.1. Először slot-ot készítünk
3.2. A QMap és a köszönések
3.3. Most pedig signal-t írunk

4. Akinek nincs esze...
4.1. A QListWidget színre lép, és megismerkedünk az elrendezések fontosságával
4.2. A QListWidget elemeinek manipulációja

5. Mentsük, ami menthető!
5.1. QStringList a feladatok átadására
5.2. Menük és QAction-ök
5.3. A FileOperator osztályunk - QFileDialog, QMessageBox és egyéb veszedelmek
5.4. Iterátor a la STL és a la Java - na és a foreach

6. A feladatokhoz kategóriákat rendelünk
6.1. A Task osztály
6.2. A QList<T> sablonosztály, és némi őrület a mutatókkal. Megismerkedünk a QSharedPointer osztállyal
6.3. A ToDoList-et felkészítjük a kategóriák használatára, de még nem használunk kategóriákat
6.4. Kategóriák költöznek a ToDoList-be

7. Módosítható feladatok, felajánlott kategóriák és alapértelmezetten betöltött feladatlista-fájl
7.1. A már megadott feladatok módosítása
7.2. Kategóriák felajánlása a QCompleter osztály használatával. Első pillantás a modellekre
7.3. Automatikus fájlbetöltés a program indulásakor - a QSettings osztály

8. Keresés, grafikon és többnyelvűség
8.1. A keresőfül
8.2. Grafikussá válva grafikont rajzolunk, és a tetejébe még iterálgatunk is
8.3. Többnyelvű alkalmazás és a QT Linguist

9. Ikonok, ablakok, automatikus mentés
9.1. Ikonok és QAction-ök a QToolBar-on
9.2. Módos és egyéb párbeszédablakok, a QTextBrowser és újabb adalékok az erőforrásfájlok természetéhez
9.3. Automatikus mentés a QTimer osztály használatával

10. Komolyan használni kezdjük a Model-View minta lehetőségeit
10.1. Elem-alapú és modell-alapú widget-ek
10.2. Újratervezés
10.3. Mit tartunk meg az előző változatból?
10.4. A főablak kialakítása
10.5. A modell, meg az osztály, ami kezeli
10.6. Kényelem mindenekfelett
10.7. Bevetjük a QItemSelectionModell osztályt

11. Adatmentés és -visszatöltés modell használatakor
11.1. A Beállítások ablak
11.2. A FileOperator osztály reinkarnációja
11.3. Utolsó lehetőség a mentésre - a QMessageBox osztály további lehetőségei és a Q_PROPERTY makró
11.4. Automatikus mentés és megnyitás

12. A modell, a delegált, meg a proxymodell
12.1. Delegált megvalósítása a QStyledItemDelegate osztály használatával
12.2. A keresőfül és a QSortFilterProxyModel osztály

13. Hálózati szinkronizáció: a ToDoList felhőcskéje
13.1. A webszerver előkészítése
13.2. Kiegészítjük a beállítás-ablakot
13.3. Feltöltés a WebSynchronizer osztállyal - a QNetworkAccessManager és egyéb hálózati örömök
13.4. Letöltés a WebSynchronizer osztállyal - a QNetworkReply osztály és a fájlok kicsomagolása

14. Többszálú programot írunk
14.1. Tanulmányprogram a szálak tanulmányozására
14.2. Szálakat építünk a ToDoList-be

15. XML-fájlba mentjük a feladatlistát

16. A ToDoList, mint SQL-kliens
16.1. Gyomlálunk
16.2. Első QSqlTableModel-ünk
16.3. Törlés és visszavonása - barkácsoljunk kézzel QSqlRecord osztályú objektumot!
16.4. Keresés és kiegészítés a QSqlQueryModel osztállyal

17. Egyszerű Qt-program csomagolása Linux-rendszerekhez
17.1. Telepítőcsomag készítése Debian alapú rendszerekre

18. Kirándulás a Qt Quick-szigetekre (meg a QML tengerébe)
18.1. QML-programot írunk
18.2. Oda-vissza Qt és Qt Quick között: így beszélgetnek egymással a hibrid programok részei

Búcsú
Milyen osztályokról, makrókról és egyéb szépségekről van szó a könyvben?


Bevezetés

A Qt strandkönyv a Qt keretrendszerről szól. Nincs benne románc, feszültség és dráma, azaz végső soron nem is igazi strandkönyv, de egy kicsit mégis: habkönnyű és fájdalommentes ismerkedést kínál a keretrendszerrel, annak főbb lehetőségeivel.

Szerzőt, szerkesztőt, lektort az a cél vezérelte, hogy a programozó vagy programozópalánta anélkül ismerkedhessen meg a Qt-vel (vagy Qt-tal, merthogy a Qt kiejtése körülbelül "kjút", azaz cuki, aranyos, édes), hogy úgy istenigazából neki kéne állnia a tanulásnak. Nincs hát szó arról, hogy az Olvasó referenciaművet böngészne éppen. Már csak azért sem, mert maga a Qt óriási, és elég gyorsan változik ahhoz, hogy mire elkészülne egy igazán átfogó és szakmailag korrekt mű, már lennének olyan pontok, ahol elavultnak számítana.

Manapság jó sok szakkönyvön az olvasható, hogy mindenkinek csak a javára szolgál, ha elolvassa. Itt is szerepelhetne az, hogy egyaránt hasznos a telefonjával bajlódó kisiskolástól kezdve mindenkinek, akinek valami elektromos kerül a kezébe, legyen az akár egy hajszárító. De azért igyekszünk ennél korrektebbek lenni.

A könyv ideális olvasója az a programozni tanuló ember, aki túl van a C++-szal való ismerkedés első élményein (vagy megrázkódtatásain - nézőpont kérdése a dolog). Írt már pár túlterhelt függvényt, nem ijed meg, ha karakterláncokat kell tömbben tárolnia és a tömböt rendeznie. Elkészült az első néhány objektumával, és reggelire példányosít magának vajas kenyeret. És, ami a C++-szal foglalkozók esetében elengedhetetlen: látott már mutatót, érti a memóriaszivárgás fogalmát - de nem kell vérprofi mutatózsonglőrnek lennie.

Mi az, amit még nem kell tudnia? Nem kell ismernie a C++ szabványos könyvtárait, és nem kell tudnia eseményvezérelt programokat írnia. Az egyikre azért nem lesz szüksége, mert úgy adódott, hogy a Qt eszközkészlete pont elég lesz nekünk, a másikra meg azért nem, mert majd most úgyis megtanulja. (Egyébként még egy csomó mindent nem kell tudnia, de nem soroljuk fel mindet.)

Kívánjuk, hogy a következő oldalak szolgáljanak az Olvasónak épülésére, egyben kikapcsolódásul.

Gárdony, 2013. augusztus-október
Varga Péter


  
×