Grundlagen und Anwendungen mit der Qt Bibliothek

  • Titel: Grundlagen und Anwendungen mit der Qt Bibliothek
  • Autor: Dominik Köppl
  • Organisation: UNI REGENSBURG
  • Seitenzahl: 85

Skript herunterladen (PDF)

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

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .