<QtGlobal> - Global Qt Declarations
<QtGlobal> 头文件包含了一系列其他头文件。更多内容...
| Header: | #include <QtGlobal> |
宏
(since 6.8) | QT_ENABLE_STRICT_MODE_UP_TO |
(since 6.0) | QT_NO_FOREACH |
| QT_NO_KEYWORDS |
详细说明
在 Qt 6.5 及更早版本中,大多数 Qt 头文件都包含 <QtGlobal>。在 Qt 6.5 之前,<QtGlobal> 定义了一系列全局声明。 在 Qt 6.5 中,其中大部分已被移至单独的头文件中,以便源代码只需包含所需的内容,而不是全部内容。 目前,<QtGlobal> 包含这些其他头文件(参见下一节),但未来的 Qt 版本可能会从 <QtGlobal> 中移除其中一些头文件,或者通过版本检查来决定是否包含它们。同样,在未来的版本中,一些目前包含 <QtGlobal> 的 Qt 头文件可能会停止包含它。 希望通过避免在未使用时进行全局声明,从而缩短编译时间。
从 <QtGlobal> 中提取的头文件列表
| 头文件 | 摘要 |
|---|---|
| <QFlags> | 以类型安全的方式组合枚举值 |
| <QForeach> | Qt 对 foreach 和 forever 循环的实现 |
| <QFunctionPointer> | 函数指针类型的 typedef 定义 |
| <QApplicationStatic> | 适用于Q_APPLICATION_STATIC |
| <QGlobalStatic> | 全局静态对象的线程安全初始化 |
| <QOverload> | 用于解析成员函数重载的辅助函数 |
| <QSysInfo> | 用于获取系统信息的辅助类 |
| <QTypeInfo> | 用于获取类型信息的辅助类 |
| <QtAssert> | Q_ASSERT 及其他运行时检查 |
| <QtClassHelperMacros> | Qt 类辅助宏 |
| <QtCompilerDetection> | 编译器特有的宏定义 |
| <QtDeprecationMarkers> | 弃用辅助宏 |
| <QtEnvironmentVariables> | 用于处理环境变量的辅助宏 |
| <QtExceptionHandling> | 异常处理辅助宏 |
| <QtLogging> | Qt 日志记录辅助函数 |
| <QtMalloc> | 内存分配辅助函数 |
| <QtMinMax> | 值比较辅助函数 |
| <QtNumeric> | 各种数值函数 |
| <QtPreprocessorSupport> | 预处理器宏辅助函数 |
| <QtProcessorDetection> | 特定于架构的宏定义 |
| <QtResource> | 用于初始化和清理资源的辅助函数 |
| <QtSwap> | qSwap() 的实现 |
| <QtSystemDetection> | 特定于平台的宏定义 |
| <QtTranslation> | Qt 翻译辅助函数 |
| <QtTypeTraits> | Qt 类型特征 |
| <QtTypes> | Qt 基本类型声明 |
| <QtVersionChecks> | QT_VERSION_CHECK 及相关检查 |
| <QtVersion> | QT_VERSION_STR 以及qVersion() |
宏文档
[since 6.8] QT_ENABLE_STRICT_MODE_UP_TO
定义此宏将禁用一些被认为不够理想或存在风险的 Qt API。
该宏的值必须设置为一个 Qt 版本,并采用QT_VERSION_CHECK 中的编码方式。例如,若要将其设置为 Qt 6.6,请定义QT_ENABLE_STRICT_MODE_UP_TO=0x060600 。这将仅禁用在指定 Qt 版本(含该版本)及更早版本中引入的 API。
如果未定义QT_DISABLE_DEPRECATED_UP_TO 宏,则 QT_ENABLE_STRICT_MODE_UP_TO 也会将其定义为相同的值。
该宏应始终设置为项目希望支持的最低 Qt 版本。
此宏禁用的 API 列于下表中,同时列出了禁用这些 API 所需的最低版本值。
| 版本 | 被禁用的 API |
|---|---|
| 6.0.0 | foreach(参见QT_NO_FOREACH ) |
| 6.0.0 | QString 向const char * /QByteArray 的转换(参见QT_NO_CAST_TO_ASCII ) |
| 6.0.0 | QByteArray 向const char * 的隐式转换(参见QT_NO_CAST_FROM_BYTEARRAY ) |
| 6.0.0 | QUrl 从QString 的隐式转换(参见QT_NO_URL_CAST_FROM_STRING ) |
| 6.0.0 | 允许在信号-插槽连接中进行窄化转换(参见QT_NO_NARROWING_CONVERSIONS_IN_CONNECT ) |
| 6.0.0 | Qt 容器的 Java 风格迭代器 |
| 6.6.0 | qExchange() 函数(参见QT_NO_QEXCHANGE ) |
| 6.7.0 | 不接受上下文对象的QObject::connect 重载(参见QT_NO_CONTEXTLESS_CONNECT ) |
| 6.8.0 | qAsConst() 函数(参见QT_NO_QASCONST ) |
| 6.8.0 | 与文件相关的 I/O 类中,其open() 函数被标记为[[nodiscard]] (参见QT_USE_NODISCARD_FILE_OPEN ) |
| 6.9.0 | qsnprintf() 和 qvnprintf() 函数(参见QT_NO_QSNPRINTF )。 |
| 6.12.0 | QPair 类型别名和 qMakePair() 函数模板(请使用std::pair/std::make_pair )。 |
| 6.12.0 | Qt 公共头文件中的某些传递性包含(请自行包含所需的内容)。 |
| 6.12.0 | 在QObject::disconnect() 中支持 constQMetaObject::Connection 参数(参见QT_NO_DISCONNECT_CONST_CONNECTION ) |
| 6.12.0 | 支持不带初始值的 `qHash ` 重载(参见QT_NO_SINGLE_ARGUMENT_QHASH_OVERLOAD )。 |
此外,作为QT_DISABLE_DEPRECATED_UP_TO 设置的一部分,某些 API 也可能被禁用。更多详细信息请参阅各类的文档。
该宏在 Qt 6.8 中引入。
另请参阅 QT_DISABLE_DEPRECATED_UP_TO 、QT_NO_KEYWORDS 以及QT_VERSION_CHECK 。
[since 6.0] QT_NO_FOREACH
定义此宏将导致 Qt XML 的foreach 循环不可用。
该宏在 Qt 6.0 中引入。
另请参阅 QT_NO_KEYWORDS 。
QT_NO_KEYWORDS
定义此宏以禁用通常处于启用状态的 Qt 特定关键字,例如signals 和slots 。请改用Q_SIGNALS 和Q_SLOTS 。
库应定义此宏,以确保其公共头文件中不会使用未带Q_ 前缀的通用关键字。
另请参阅 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.