<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>。这样做的目的是在不使用全局声明时避免使用它们,从而缩短编译时间。
从 <QtGlobal> 中提取的头文件列表
标题 | 摘要 |
---|---|
<QFlags> | 组合枚举值的类型安全方法 |
<QForeach | Qt 对 foreach 和 forever 循环的实现 |
<QFunctionPointer> 函数指针 | 函数指针类型的类型定义 |
<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_VERSION_CHECK 的编码设置为 Qt 版本。例如,要将其设置为 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 )。 |
此外,作为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 的foreach
循环就不再可用。
此宏在 Qt 6.0 中引入。
另请参阅 QT_NO_KEYWORDS 。
QT_NO_KEYWORDS
定义此宏可禁用通常启用的 Qt 特定关键字,如signals
和slots
。请使用Q_SIGNALS
和Q_SLOTS
。
库应定义此宏,以确保不在公共头文件中使用不带Q_
前缀的通用关键字。
另请参阅 QT_NO_FOREACH 。
© 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.