
- Titel: Grundlagen und Anwendungen mit der Qt Bibliothek
- Autor: Dominik Köppl
- Organisation: UNI REGENSBURG
- Seitenzahl: 85
Inhalt
- 1 Basics
- 1.1 Makros
- 1.2 Datentypen
- 1.2.1 Interpretation des Speichers einer Ganzzahl
- 1.2.2 Das zweier Komplement
- 1.2.3 Interne Speicherverteilung von Gleitpunktzahlen
- 1.3 Streams
- 1.4 Formatierte Ausgabe mittels Manipulatoren
- 1.5 Zeiger
- 1.6 Referenzen
- 1.7 Vergleich
- 1.8 Zeiger auf Funktionen
- 1.9 Arrays
- 1.10 C-Strings
- 1.11 konstante Arrays
- 1.12 Ein- und Ausgabe von Strings
- 1.13 Mehrdimensionale Arrays
- 1.14 Dynamische Speicherverwaltung
- 1.15 Dynamische Arrays
- 1.16 Wilde Zeiger
- 1.17 Debuggen
- 1.18 Einbinden von C-Headerdateien
- 1.19 Scope
- 1.20 Call by Reference
- 1.21 Überladen von Funktionen
- 1.22 Default-Parameter
- 1.23 Inline-Funktionen
- 1.24 Schablonen
- 1.25 Namespaces
- 1.26 Aufzählungen
- 2 OOP
- 2.1 Objekte – Instanzen von Klassen
- 2.2 konstante Objekte
- 2.3 this-Zeiger
- 2.4 Konstante Members
- 2.5 Copy-Konstruktor
- 2.6 Konvertierungskonstruktoren
- 2.7 Destruktoren
- 2.8 Statische Member/Methoden
- 2.9 Sprich, Freund und tritt ein
- 2.10 Operatoren
- 2.10.1 Post- und Präfixoperatoren
- 2.10.2 Binäre Operatoren
- 2.10.3 Besondere Operatoren
- 2.10.4 Ein- und Ausgabeoperatoren
- 2.11 Templateklassen
- 2.12 Aufteilung in mehrere Dateien
- 2.13 Vererbung
- 2.13.1 Zugriffsregelungen bei Vererbungen
- 2.13.2 Shadowing
- 2.13.3 Konvertierungen
- 2.14 Nicht-vererbbare Methoden
- 2.14.1 Konstruktoren
- 2.14.2 Zuweisungsoperator
- 2.15 Polymorphie
- 2.15.1 Wo ist mein Destruktor?
- 2.15.2 Rein virtuelle Funktionen
- 2.16 Mehrfachvererbung
- 3 C++-Schatztruhe
- 3.1 Fehlerbehandlung mit Exceptions
- 3.2 Cast-Operatoren
- 4 Qt
- 4.1 Überblick
- 4.2 Bestandteile von Qt
- 4.3 Die main-Routine
- 4.3.1 Die Klasse QApplication
- 4.3.2 Allgemeine Form der main-Routine
- 4.4 Compilieren eines Qt-Projektes
- 4.5 Projektdatei .pro
- 4.6 Debuggen in Qt
- 4.7 Widgets – Window Gadgets
- 4.8 Eigene Widgets
- 4.8.1 Aufsplittung in Header- und Quellcodedatei
- 4.9 Parent-Child-Beziehung
- 4.10 Signals/Slots
- 4.11 Layout-Management
- 4.11.1 Allgemeiner Ablauf im Konstruktur
- 4.11.2 Layoutklassen
- 4.12 QString
- 4.13 Datei-IO in Qt
- 4.14 Containerklassen in Qt
- 4.15 Zeichnen in Qt
- 4.15.1 Exkurs
- 4.15.2 Die Klasse QPainter
- 4.15.3 QImage versus QPixmap
- 4.15.4 Scaleable Vector Graphics
- 4.15.5 Zeichnen auf den Punkt gebracht
- 4.16 Ereignisse
- 4.16.1 QPaintEvent
- 4.17 Animation
- 4.17.1 QTimer
- 4.18 QAction
- 4.19 Das Anwendungsfester
- 4.20 Das Qt-Resource-System
- 4.21 Context-Menus
- 4.22 Dialoge
- 4.22.1 Kurzmitteilungen
- 4.22.2 Eigene Kurzmitteilungen
- 4.22.3 komplexere Dialoge
- 4.23 MDI
- 4.24 Designer
- 4.25 Linguist
- 4.26 Sound
- 4.27 WWW-Browser
- 4.28 OpenGL in Qt
- A Arbeiten unter Linux
- A.1 Die Shell
- A.1.1 Die zsh
- A.1.2 Die csh
- A.2 Linux Befehle
- A.3 Autocompletion
- A.4 Mehrere Befehle in einer Shell
- B Qt unter Windows
- Index
Vorschau
C++ – Programmierung: Grundlagen und Anwendungen mit der Qt-Klassenbibliothek
Dominik K¨ppl o 8. April 2011
Kursskript zum Sommersemester 2011
Dieses Skript dient als Arbeitsunterlage f¨r den C++/Qt Kurs, der in der physikalischen u Fakult¨t der Universit¨t Regensburg stattfindet. Das Skript erhebt in keinster Weise Ana a spruch auf Vollst¨ndigkeit und Fehlerfreiheit. Korrekturvorschl¨ge und Anregungen sind a a jederzeit erw¨nscht. Viele Bereiche wurden vom alten Kursskript von Thomas Glomann u ubernommen. ¨
CC BY:
1
Die Unterlagen sind unter http://homepages.uni-regensburg.de/˜kod15930/?s=qtkurs online verf¨gbar. u
1
Dieses Skriptum wird unter der Creative Commons Lizenz BY-SA angeboten
C
Qt/C++ Kurs
INHALTSVER EICHNIS
Inhaltsverzeichnis 1 Basics 1.1 Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Datentypen . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Interpretation des Speichers einer Ganzzahl . . 1.2.2 Das zweier Komplement . . . . . . . . . . . . . 1.2.3 Interne Speicherverteilung von Gleitpunktzahlen 1.3 Streams . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Formatierte Ausgabe mittels Manipulatoren . . . . . . 1.5 eiger . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Referenzen . . . . . . . . . . . . . . . . . . . . . . . . . 1.7 Vergleich: Referenz – eiger . . . . . . . . . . . . . . . 1.8 eiger auf Funktionen . . . . . . . . . . . . . . . . . . 1.9 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10 C-Strings . . . . . . . . . . . . . . . . . . . . . . . . . 1.11 konstante Arrays . . . . . . . . . . . . . . . . . . . . . 1.12 Ein- und Ausgabe von Strings . . . . . . . . . . . . . . 1.13 Mehrdimensionale Arrays . . . . . . . . . . . . . . . . . 1.14 Dynamische Speicherverwaltung . . . . . . . . . . . . . 1.15 Dynamische Arrays . . . . . . . . . . . . . . . . . . . . 1.16 Wilde eiger . . . . . . . . . . . . . . . . . . . . . . . . 1.17 Debuggen . . . . . . . . . . . . . . . . . . . . . . . . . 1.18 Einbinden von C-Headerdateien . . . . . . . . . . . . . 1.19 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.20 Call by Reference . . . . . . . . . . . . . . . . . . . . . ¨ 1.21 Uberladen von Funktionen . . . . . . . . . . . . . . . . 1.22 Default-Parameter . . . . . . . . . . . . . . . . . . . . 1.23 Inline-Funktionen . . . . . . . . . . . . . . . . . . . . . 1.24 Schablonen . . . . . . . . . . . . . . . . . . . . . . . . 1.25 Namespaces . . . . . . . . . . . . . . . . . . . . . . . . 1.26 Aufz¨hlungen . . . . . . . . . . . . . . . . . . . . . . . a 2 OOP 2.1 Objekte – Instanzen von Klassen 2.2 konstante Objekte . . . . . . . 2.3 this- eiger . . . . . . . . . . . . 2.4 Konstante Members . . . . . . . 2.5 Copy-Konstruktor . . . . . . . . 2.6 Konvertierungskonstruktoren . . 2.7 Destruktoren . . . . . . . . . . 2.8 Statische Member/Methoden . . 2.9 Sprich, Freund und tritt ein . . 1 1 2 3 4 4 6 6 7 8 8 8 8 9 9 10 11 11 12 13 13 14 14 14 15 16 16 17 18 19 20 22 23 23 24 25 27 28 28 29
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . i
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
Qt/C++ Kurs
INHALTSVER EICHNIS
2.10 Operatoren . . . . . . . . . . . . . . . . . 2.10.1 Post- und Pr¨fixoperatoren . . . . a 2.10.2 Bin¨re Operatoren . . . . . . . . . a 2.10.3 Besondere Operatoren . . . . . . . 2.10.4 Ein- und Ausgabeoperatoren . . . . 2.11 Templateklassen . . . . . . . . . . . . . . . 2.12 Aufteilung in mehrere Dateien . . . . . . . 2.13 Vererbung . . . . . . . . . . . . . . . . . . 2.13.1 ugriffsregelungen bei Vererbungen 2.13.2 Shadowing . . . . . . . . . . . . . . 2.13.3 Konvertierungen . . . . . . . . . . 2.14 Nicht-vererbbare Methoden . . . . . . . . 2.14.1 Konstruktoren . . . . . . . . . . . . 2.14.2 uweisungsoperator . . . . . . . . . 2.15 Polymorphie . . . . . . . . . . . . . . . . . 2.15.1 Wo ist mein Destruktor? . . . . . . 2.15.2 Rein virtuelle Funktionen . . . . . 2.16 Mehrfachvererbung . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
30 33 33 34 35 36 37 38 40 42 42 43 43 44 45 47 48 48 49 49 50 52 52 53 54 54 55 56 56 57 57 58 58 59 59 60 60 61 62 62 63
3 C++-Schatztruhe 3.1 Fehlerbehandlung mit Exceptions . . . . . . . . . . . . . . . . . . . . . . . 3.2 Cast-Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Qt ¨ 4.1 Uberblick . . . . . . . . . . . . . . . . . . . . . . . 4.2 Bestandteile von Qt . . . . . . . . . . . . . . . . . . 4.3 Die main-Routine . . . . . . . . . . . . . . . . . . . 4.3.1 Die Klasse QApplication . . . . . . . . . . 4.3.2 Allgemeine Form der main-Routine . . . . . 4.4 Compilieren eines Qt-Projektes . . . . . . . . . . . 4.5 Projektdatei .pro . . . . . . . . . . . . . . . . . . . 4.6 Debuggen in Qt . . . . . . . . . . . . . . . . . . . . 4.7 Widgets – Window Gadgets . . . . . . . . . . . . . 4.8 Eigene Widgets . . . . . . . . . . . . . . . . . . . . 4.8.1 Aufsplittung in Header- und Quellcodedatei 4.9 Parent-Child-Beziehung . . . . . . . . . . . . . . . 4.10 Signals/Slots . . . . . . . . . . . . . . . . . . . . . 4.11 Layout-Management . . . . . . . . . . . . . . . . . 4.11.1 Allgemeiner Ablauf im Konstruktur . . . . . 4.11.2 Layoutklassen . . . . . . . . . . . . . . . . . 4.12 QString . . . . . . . . . . . . . . . . . . . . . . . . 4.13 Datei-IO in Qt . . . . . . . . . . . . . . . . . . . . 4.14 Containerklassen in Qt . . . . . . . . . . . . . . . . ii