<QtGlobal> - Global Qt Declarations
Die Header-Datei <QtGlobal> bindet eine Reihe weiterer Header-Dateien ein. Mehr...
| Header: | #include <QtGlobal> |
Makros
(since 6.8) | QT_ENABLE_STRICT_MODE_UP_TO |
(since 6.0) | QT_NO_FOREACH |
| QT_NO_KEYWORDS |
Ausführliche Beschreibung
Bis Qt 6.5 enthielten die meisten Qt-Header-Dateien <QtGlobal>. Vor Qt 6.5 definierte <QtGlobal> eine Reihe globaler Deklarationen. Die meisten davon wurden in Qt 6.5 in separate Header-Dateien verschoben, sodass der Quellcode nur das einbinden kann, was er benötigt, anstatt die gesamte Sammlung. Derzeit enthält <QtGlobal> diese anderen Header (siehe nächster Abschnitt), aber in zukünftigen Versionen von Qt könnten einige dieser Header aus <QtGlobal> entfernt oder ihre Einbindung von einer Versionsprüfung abhängig gemacht werden. Ebenso könnten in zukünftigen Versionen einige Qt-Header, die derzeit <QtGlobal> einbinden, dies nicht mehr tun. Man hofft, dass sich dadurch die Kompilierungszeiten verbessern, da globale Deklarationen vermieden werden, wenn sie nicht verwendet werden.
Liste der aus <QtGlobal> extrahierten Header
| Header | Zusammenfassung |
|---|---|
| <QFlags> | Typsichere Methode zum Kombinieren von Enum-Werten |
| <QForeach> | Qts Implementierung von foreach- und forever-Schleifen |
| <QFunctionPointer> | Typedef für einen Zeiger-auf-Funktion-Typ |
| <QApplicationStatic> | Für Q_APPLICATION_STATIC |
| <QGlobalStatic> | Thread-sichere Initialisierung globaler statischer Objekte |
| <QOverload> | Hilfsfunktionen zur Auflösung von Überladungen von Mitgliedsfunktionen |
| <QSysInfo> | Eine Hilfsklasse zum Abrufen von Systeminformationen |
| <QTypeInfo> | Hilfsfunktionen zum Abrufen von Typinformationen |
| <QtAssert> | Q_ASSERT und andere Laufzeitprüfungen |
| <QtClassHelperMacros> | Qt-Klassen-Hilfsmakros |
| <QtCompilerDetection> | Compilerspezifische Makrodefinitionen |
| <QtDeprecationMarkers> | Hilfsmakros für veraltete Funktionen |
| <QtEnvironmentVariables> | Hilfsmittel für die Arbeit mit Umgebungsvariablen |
| <QtExceptionHandling> | Hilfsmakros für die Ausnahmebehandlung |
| <QtLogging> | Qt-Logging-Hilfsfunktionen |
| <QtMalloc> | Hilfsfunktionen für die Speicherzuweisung |
| <QtMinMax> | Hilfsfunktionen zum Vergleichen von Werten |
| <QtNumeric> | Verschiedene numerische Funktionen |
| <QtPreprocessorSupport> | Hilfsmakros für den Präprozessor |
| <QtProcessorDetection> | Architekturspezifische Makrodefinitionen |
| <QtResource> | Hilfsmittel zur Initialisierung und Bereinigung von Ressourcen |
| <QtSwap> | Implementierung von ` qSwap()` |
| <QtSystemDetection> | Plattformspezifische Makrodefinitionen |
| <QtTranslation> | Qt-Übersetzungshilfen |
| <QtTypeTraits> | Qt-Typ-Traits |
| <QtTypes> | Qt-Deklarationen grundlegender Typen |
| <QtVersionChecks> | QT_VERSION_CHECK und zugehörige Prüfungen |
| <QtVersion> | QT_VERSION_STR sowie ` qVersion()` |
Makro-Dokumentation
[since 6.8] QT_ENABLE_STRICT_MODE_UP_TO
Durch die Definition dieses Makros werden eine Reihe von Qt-APIs deaktiviert, die als suboptimal oder gefährlich gelten.
Der Wert dieses Makros muss unter Verwendung der Kodierung von „ QT_VERSION_CHECK “ auf eine Qt-Version gesetzt werden. Um es beispielsweise auf Qt 6.6 festzulegen, definieren Sie „ QT_ENABLE_STRICT_MODE_UP_TO=0x060600 “. Dadurch werden nur die APIs deaktiviert, die in Versionen bis einschließlich der angegebenen Qt-Version eingeführt wurden.
Ist das Makro „ QT_DISABLE_DEPRECATED_UP_TO “ nicht definiert, wird es durch „QT_ENABLE_STRICT_MODE_UP_TO“ mit demselben Wert definiert.
Dieses Makro sollte immer auf die niedrigste Qt-Version gesetzt werden, die Ihr Projekt unterstützen soll.
Die durch dieses Makro deaktivierten APIs sind in der folgenden Tabelle zusammen mit dem Mindestwert aufgeführt, der verwendet werden muss, um sie zu deaktivieren.
| Version | Deaktivierte APIs |
|---|---|
| 6.0.0 | foreach (siehe QT_NO_FOREACH) |
| 6.0.0 | QString Konvertierungen in Richtung const char * / QByteArray (siehe QT_NO_CAST_TO_ASCII) |
| 6.0.0 | QByteArray implizite Konvertierungen in Richtung const char * (siehe QT_NO_CAST_FROM_BYTEARRAY) |
| 6.0.0 | QUrl Implizite Konvertierungen von „ QString “ (siehe QT_NO_URL_CAST_FROM_STRING) |
| 6.0.0 | Zulassung von Verengungskonvertierungen in Signal-Slot-Verbindungen (siehe QT_NO_NARROWING_CONVERSIONS_IN_CONNECT) |
| 6.0.0 | Iteratoren im Java-Stil für Qt-Container |
| 6.6.0 | Die Funktion ` qExchange()` (siehe QT_NO_QEXCHANGE) |
| 6.7.0 | Überladungen von ` QObject::connect `, die kein Kontext-Objekt entgegennehmen (siehe QT_NO_CONTEXTLESS_CONNECT) |
| 6.8.0 | Die Funktion `qAsConst()` (siehe QT_NO_QASCONST) |
| 6.8.0 | Bei dateibezogenen I/O-Klassen sind die „ open() “-Funktionen mit „ [[nodiscard]] “ gekennzeichnet (siehe QT_USE_NODISCARD_FILE_OPEN) |
| 6.9.0 | Die Funktionen qsnprintf() und qvnprintf() (siehe QT_NO_QSNPRINTF). |
| 6.12.0 | Der Typ-Alias „ QPair “ und die Funktionsvorlage „qMakePair()“ (verwenden Sie std::pair/std::make_pair). |
| 6.12.0 | Bestimmte transitive Einbindungen in öffentlichen Qt-Header-Dateien (binden Sie selbst ein, was Sie benötigen). |
| 6.12.0 | Unterstützung für `const QMetaObject::Connection `-Argumente in ` QObject::disconnect()` (siehe QT_NO_DISCONNECT_CONST_CONNECTION) |
| 6.12.0 | Unterstützung für Überladungen von ` qHash ` ohne Startwert (siehe QT_NO_SINGLE_ARGUMENT_QHASH_OVERLOAD). |
Darüber hinaus können einzelne APIs im Rahmen der Einstellung von ` QT_DISABLE_DEPRECATED_UP_TO` deaktiviert werden. Weitere Details finden Sie in der Dokumentation der jeweiligen Klasse.
Dieses Makro wurde in Qt 6.8 eingeführt.
Siehe auch „ QT_DISABLE_DEPRECATED_UP_TO “, „ QT_NO_KEYWORDS “ und „ QT_VERSION_CHECK “.
[since 6.0] QT_NO_FOREACH
Durch die Definition dieses Makros wird die Verfügbarkeit der Qt-Schleife „ foreach “ aufgehoben.
Dieses Makro wurde in Qt 6.0 eingeführt.
Siehe auch „ QT_NO_KEYWORDS “.
QT_NO_KEYWORDS
Definieren Sie dieses Makro, um die normalerweise aktivierten Qt-spezifischen Schlüsselwörter wie „ signals “ und „ slots “ zu deaktivieren. Verwenden Sie stattdessen „ Q_SIGNALS “ und „ Q_SLOTS “.
Bibliotheken sollten dieses Makro definieren, um sicherzustellen, dass sie in ihren öffentlichen Headern keine generischen Schlüsselwörter ohne das Präfix „ Q_ “ verwenden.
Siehe auch QT_NO_FOREACH.
© 2026 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.