Kern-Interna
Qt enthält eine Vielzahl von grundlegenden Funktionen, hauptsächlich aus dem Qt Core Modul. Qt verwendet diese Enabler, um UI- und Anwendungsentwicklungskomponenten auf höherer Ebene bereitzustellen. Die folgenden Themen erklären die wichtigsten Enabler und zeigen, wie man sie verwendet, um spezielle Funktionen zu implementieren, die nicht bereits von Qt bereitgestellt werden.
Objekte, Eigenschaften und Ereignisse
Die Klasse QObject bildet die Grundlage des Objektmodells von Qt und ist die übergeordnete Klasse vieler Qt-Klassen. Das Objektmodell führt viele Mechanismen ein, wie z.B. ein Meta-Objektsystem, das die Introspektion, Manipulation und den Aufruf von Eigenschaften und Methoden im Objekt zur Laufzeit ermöglicht. Es dient auch als Grundlage für das Qt-Ereignissystem, das eine Low-Level-Kommunikation zwischen QObject-basierten Objekten ermöglicht. Eine weitere High-Level-Kommunikationsform bieten die Signale und Slots von Qt.
Darüber hinaus bietet QObject mit QObject::startTimer() einen einfachen Timing-Mechanismus. Alternativ dazu bietet die Klasse QTimer eine High-Level-Schnittstelle für Timer.
- Objektmodell
- Das Meta-Objektsystem
- Das Eigenschaftssystem
- Das Ereignissystem
- Signale und Slots
- Zeitgeber
Container-Klassen
Ein Container ist eine Datenstruktur, deren Instanzen Sammlungen von anderen Objekten sind. Einige Beispiele für Container sind: dynamische Arrays, Warteschlangen, verknüpfte Listen und assoziative Arrays. Qt bietet eine Reihe von allgemeinen, vorlagenbasierten Containerklassen für die Strukturierung von Daten im Speicher.
Weitere Informationen finden Sie in der vollständigen Liste der Containerklassen.
Internationalisierung
Qt verwendet Unicode für die Kodierung von darstellbaren Textstrings. Unicode bietet Unterstützung für alle weltweit gebräuchlichen Schriftsysteme und ist ideal für die plattformübergreifende Entwicklung. Mit dem leistungsstarken Internationalisierungssystem von Qt können Anwendungen so geschrieben werden, dass sie eine beliebige Anzahl verschiedener Sprachen mit einer einzigen Codebasis unterstützen.
Prozessübergreifende Kommunikation in Qt
Qt bietet mehrere Klassen zur Unterstützung der Kommunikation zwischen Prozessen. Mit der Klasse QProcess können Sie auch externe Prozesse starten und verwalten.
Threading
Qt bietet Funktionen zur sicheren und plattformunabhängigen Verwaltung von Threads und parallelisiertem Code.
Plattform-Unterstützung
Qt ermöglicht es Ihnen, plattformunabhängigen Code zu schreiben, wobei dieselbe Codebasis ohne Änderungen für verschiedene Plattformen kompiliert und eingesetzt werden kann. In Fällen, in denen Sie plattformspezifische Funktionen verwenden und mit Systembibliotheken integrieren müssen, bietet Qt auch hierfür Lösungen.
Qt integriert sich mit Hilfe von Qt Platform Abstraction (QPA) in das Windowing-System der Zielplattform. QPA ist eine Abstraktion eines Windowing-Systems, die die Portierung von Qt auf neue Plattformen einfach und schnell macht. Ein solches System ist das Wayland-Protokoll. Qt kann zusammen mit Wayland als leichtgewichtiges Windowing-System auf eingebetteter Hardware verwendet werden, um eine grafische Benutzeroberfläche mit mehreren Prozessen zu unterstützen.
Die Qt-Plattformabstraktion verwendet das Plugin-System von Qt. Dieses Plugin-System stellt APIs zur Verfügung, um Qt in bestimmten Bereichen zu erweitern (z. B. Unterstützung für neue Bildformate, Datenbanktreiber usw.) und auch um eigene erweiterbare Qt-Anwendungen zu schreiben, die Plugins von Drittanbietern unterstützen.
- Qt-Plattform-Abstraktion
- Wie man Qt-Plugins erstellt
- Endian Conversion Functions - Funktionen zur Handhabung der Endianness aus dem QtEndian-Header
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.