http://www.pronix.de -> Bücher -> Bücher aus meiner Feder -> Qt 4 - GUI-Entwicklung mit C++ -> Inhaltsverzeichnis

Inhaltsverzeichnis

1    Einstieg in Qt

    1.1    Was ist Qt
    1.2    Lizenzierung
    1.4    Qt installieren
        1.4.1    Linux/Unix und Mac OS X
        1.4.2    MS-Windows (XP/Vista)
    1.5    Hallo Welt mit Qt
        1.5.1    Ein ausführbares Qt-Programm machen

2    Signale und Slots
    2.1    Grundlagen
        2.1.1    Signale und Slots ermitteln
        2.1.2    Gegenseitiges Signal-und-Slot-Konzept
        2.1.3    Argumentenlisten von Signal-Slot-Verbindungen
        2.1.4    Eigene Klasse mit Signalen und Slots definieren bzw. erweitern
            MOC – Meta Object Compiler
        2.1.5    Widget mit eigenem Slot
        2.1.6    Widget mit eigenem Signal
        2.1.7    Zusammenfassung

3    Basisklassen und Bibliotheken von Qt
    3.1    Basisklasse: QObject
    3.2    Qt-Klassenhierarchie
    3.3    Speicherverwaltung von Objekten
    3.4    Programm-Bibliotheken von Qt
        3.4.1    QtCore
        3.4.2    QtGui
        3.4.3    QtNetwork
        3.4.4    QtOpenGL
        3.4.5    QtSql
        3.4.6    QtSvg
        3.4.7    QtXml
        3.4.8    Qt3Support
        3.4.9    Der Rest
    3.5     Meta-Include-Headerdatei

4    Dialoge, Layout und Qt-Widgets
    4.1    Eigene Widget-Klassen erstellen
    4.2    Widgets anordnen – Das Layout
        4.2.1    Grundlegende Layout-Widgets
            QGridLayout, QVBoxLayout und QHBoxLayout
            Allgemeine Methoden für das Layout (QLayout) 
            Methoden für das Layout (QBoxLayout) – Horizontales und vertikales Layout
            Methoden für das Layout (QGridLayout) – Raster-Layout
            Stapel-Layout (QStackedLayout)
            Weitere indirekte Layout-Klassen (QSpacerItem und QWidgetItem)
            Qt::Alignment
            Eigenen Layout-Manager erstellen
            Manuelles Layout
    4.3    Erstellen von Dialogen (QDialog)
        4.3.1    Benutzerfreundlichkeit von Dialogen
    4.4    Vorgefertigte Dialoge
        4.4.1    QMessageBox – Nachrichten-Dialoge
            Nachrichten-Dialog auswerten
            Eigene Schaltflächen für QMessageBox
        4.4.2    QFileDialog - Dialoge zur Dateiauswahl
        4.4.3    QInputDialog - Eingabedialog
        4.4.4    QFontDialog – Schriftauswahl
        4.4.5    QColorDialog – Farbauswahl
        4.4.6    QPrintDialog – Druckerdialog
        4.4.7    Dialoge – Übersicht
    4.5    Qt-Widgets
        4.5.1    Buttons (Basisklasse QAbstractButton)
            QPushButton
            QCheckBox
            QRadioButton
            QToolButton
            QButtonGroup
        4.5.2    Container-Widgets
            QGroupBox
            QTabWidget
            QFrame
            QToolBox
        4.5.3    Widgets zur Zustandsanzeige
            QProgressBar (QProgressDialog)
            QLCDNumber
            QLabel
        4.5.4    Widgets für die Eingabe
            QAbstractSlider
            QLineEdit
            QComboBox
            QAbstractSpinBox
            QTextEdit
            QCalendarWidget
        4.5.5    Item-View-Subklassen verwenden (Ansichts-Klassen)
            QTableWidget und QTableWidgetItem
            QListWidget und QListWidgetItem
            QTreeWidget und QTreeWidgetItem
        4.5.6    Exkurs: Model-View-Controller (MVC)
        4.5.7    Vordefinierte Modelle
            QDirModel – Verzeichnishierarchien anzeigen
            QStringListModel – Stringlisten-Modell
            QSortFilterProxyModel – Sortieren und Filtern von Daten
            Eigene Modelle und benutzerdefinierte Delegates
    4.6    Online-Hilfen
        4.6.1    Statuszeilentipp
        4.6.2    Tooltipps
        4.6.3    Direkthilfe
        4.6.4    Einfache Dokumentation mit QTextBrowser
        4.6.5    QAssistantClient – Qt Assistant weiterverwenden

5    Qt-Hauptfenster
    5.1    Aufbau eines Hauptfensters
    5.2    Die Klasse QMainWindow
        5.2.1    Flags für QMainWindow
        5.2.2    Ein Menüleiste mit der Klasse QMenu und QMenuBar
            QMenuBar
            QMenu
            QAction
            QActionGroup
        5.2.3    Ein Statusleiste mit der Klasse QStatusBar
            Temporäre Meldungen in der Statusleiste
            Normale Meldungen in der Statusleiste
            Permanente Meldungen in der Statusleiste
            Methoden, Signale und Slots von QStatusBar
        5.2.4    Ein Werkzeugleiste mit der Klasse QToolBar
        5.2.5    Verschiebbare Widgets im Hauptfenster mit QDockWidget
        5.2.6    Einstellungen der Anwendung speichern mit QSettings
            Methoden der Klasse QSettings
        5.2.7    Anwendungen mit MDI-Fenster erstellen (Klasse QWorkspace)
        5.2.8    Übersicht zu den Methoden der Klasse QMainWindow
    5.3    Fenster aufteilen – QSplitter
        5.3.1    Splitter-Handle – QSplitterHandle
    5.4    Scrolling Area – QScrollArea

6    Ein-/Ausgabe von Daten
    6.1    Schnittstelle für alle E/A-Geräte – QIODevice
    6.2    Die Datei – QFile
        6.2.1    Temoräre Datei – QTemporaryFile
    6.3    Streams
        6.3.1    Binäre Daten – QDataStream
        6.3.2    Text Daten – QTextStream
    6.4    Der Puffer – QBuffer
    6.5    Verzeichnisse - QDir
    6.6    Dateiinformationen – QFileInfo
    6.7    Interprozesskommunikation – QProcess
    6.8    Netzwerkkommunikation (Sockets)
        6.8.1    QAbstractSocket
            QTcpSocket
            QTcpServer
            QUdpSocket
        6.8.2    Das HTTP-Protokol – QHttp
            QHttpHeader (QHttpRequestHeader und QHttpResponseHeader)
            QUrl
            Programmbeispiel – HTTP-Client
        6.8.3    Das FTP-Protokol – QFtp
        6.8.4    Ein Proxy – QNetworkProxy
    6.9    Multithreads – QThread
        6.9.1    QMutex
        6.9.2    QMutexLocker
        6.9.3    QReadWriteLock
        6.9.4    QSemaphore
        6.9.5    QWaitCondition
        6.9.6    Datenstrukturen an den Thread binden – QThreadStorage
        6.9.7    Ausblick
                forever
                Weitere Beispiele
    6.10    Relationale Datenbanken – QtSql
        6.10.1    Die Treiber für QtSql
        6.10.2    Ein Verbindung zu Datenbank herstellen - QSqlDatabase
            Mehrere Datenbankverbindungen
        6.10.3    SQL-Anweisungen ausführen – QSqlQuery
            Daten hinzufügen
            Daten ändern oder löschen
            Daten abfragen
            Transaktionen
            Listing
        6.10.4    SQL-Anweisungen der höheren Ebene – QSqlTableModel
            Daten hinzufügen
            Daten ändern
            Daten löschen
            Daten abfragen
            Listing
        6.10.5    View-Klasse QTableView mit SQL verwenden
    6.11    Klassen und Typen zum Speichern von Daten
        6.11.1    Qt-eigene Typendefinitionen
        6.11.2    QString
            QStringList
        6.11.3    QChar
        6.11.4    QByteArray
        6.11.5    QVariant
        6.11.6    Container und Algorithmen
            Sequentielle Container-Klassen
            Assoziative Container-Klassen
            Algorithmen
        6.12    Datum und Uhrzeit

7    Ereignis-Verarbeitung
    7.1    Ereignis-Schleife (Event-Loop)
    7.2    Ereignishandler neu implementieren
        7.2.1    event() neu implementieren
    7.3    Ereignis-Filter implementieren
    7.4    Eingreifen in die Ereignisverwaltung
        7.4.1    QApplication::notify()
        7.4.2    eventFilter() – Ereignisfilter
        7.4.3    event()
        7.4.4    Ereignishandler
        7.4.5    Weitergabe von Ereignissen
    7.5    Ereignisverarbeitung für Threads
    7.6    Ereignisverarbeitung optimieren

8    Drag & Drop und Zwischenablage
    8.1    Kodierung mit QMimeData
        8.1.1    Drop-Seite
        8.1.2    Drag-Seite
        8.1.3    Benutzerdefinierte MIME-Typen für das Drag und Drop
    8.2    Zwischenablage – QClipboard

9    Grafik und Drucken
    9.1    Zeichnen mit Qt – QPainter
        9.1.1    QPaintEvent
        9.1.2    Einstellungen
            Schrift
            Pinsel
            Stift
        9.1.3    Transformation des Koordinatensystems
            Scherung
            Skalieren
            Versetzen
            Weiteres
    9.2    Bildbearbeitung – QImage
        9.2.1    Speicher- und Bildformate
        9.2.2    Bild laden und speichern
        9.2.3    Bildinformationen und Bild-Transformation
        9.2.4    Pixel auslesen
    9.3    Drucken mit Qt – QPrinter
    9.4    OpenGL mit Qt
         9.4.1    Spezifikation
                MesaGL – Die OpenGL-Software-Emulation
        9.4.2    Anwendungsbeispiele in der Praxis von OpenGL
        9.4.3    Portabilität
        9.4.4    Quellen um mehr über OpenGL zu erfahren
        9.4.5    OpenGL mit Qt anwenden
    9.5    Vektorgrafik – QSvgWidget

10    XML
    10.1    SAX-API von Qt verwenden
        10.1.1    Default-Handler implementieren
     10.2    DOM-API von Qt verwenden
        10.2.1    Elemente suchen
        10.2.2    Weiteres

11    Internationale Anwendungen
    11.1    Vorraussetzung für eine Übersetzung
        11.1.1    Fehlervermeidung und Kommentare
    11.2    Übersetzen mit Linguist
    11.3    Übersetzung verwenden
    11.4    char-Arrays internationalsieren

12    Weiteres zu Qt
    12.1    Dynamische Bibliotheken erstellen
            12.1.1    Dynamische Bibliothek dynamisch nachladen
            12.1.2    Plug-ins erstellen
    12.2    Embeeded Progamming mit Qtopia
    12.3    Debugging-Ausgabe
        12.3.1    Fehlerbehebung
    12.4    Qt Styles
    12.5    QApplication, QCoreApplication und die Kommandozeile
    12.6    Anwendungen mit dem Qt Designer erstellen
        12.6.1    Ein Dialog-Fenster erstellen
            Designer-Datei in einer Qt-Anwendung verwenden
        12.6.2    Ein Hauptfenster mit dem Designer entwerfen
            Mit dem Designer erstelltes Hauptfenster verwenden
    12.7    Das Qt-Ressourcen-System