Qt Core

Qt Core 模块将这些特征添加到 C++:

  • 称为信号/槽非常强大的无缝对象通信机制
  • 可查询且可设计的对象特性
  • 分层且可查询的对象树,采用守卫指针以自然方式组织对象所有权 ( QPointer )
  • 动态铸就工作跨库边界

以下页面提供了关于 Qt 核心特征的更多信息:

使用模块

使用 Qt 模块的 C++ API 要求直接 (或透过其它依赖) 链接到模块库。几个构建工具对此有专用支持,包括 CMake and qmake .

构建采用 CMake

使用 find_package() 命令定位所需模块组件在 Qt6 包:

find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
					

更多细节,见 构建采用 CMake 概述。

采用 qmake 构建

若使用 qmake 构建工程,默认情况下会链接 Qt Core。

线程和并发编程

Qt 提供线程支持独立于平台形式 线程类 ,跨线程张贴事件和信号/槽连接的 Thread-Safety (线程安全) 方式。多线程编程也是履行耗时操作且不冻结应用程序用户界面的有用范式。

The Qt 中的线程支持 页面包含在应用程序中实现线程的有关信息。额外并发类的提供由 Qt Concurrent 模块。

输入/输出、资源及容器

Qt 提供组织应用程序文件和资产的资源系统、一组容器及接收输入 打印输出的类。

此外,Qt Core 提供在应用程序的可执行文件中存储二进制文件且独立于平台的机制。

附加框架

Qt Core 还提供了一些 Qt 关键框架。

参考

模块演变

Qt Core 的变化 列出了 Qt 的 Qt 6 系列在模块 API 和功能上所做出的重要改变。

许可和归属

Qt Core 在商业许可下是可用的来自 Qt 公司 。此外,它在自由软件许可下也是可用的: GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。

Windows 可执行文件潜在链接到 QtEntryPoint 库 。此库可用于商业许可及 BSD 3 条款新 (或修订) 许可 .

此外,Qt 6.5.1 中的 Qt Core 可能包含的第 3 方模块遵循下列准许许可:

BLAKE2 (参考实现),版本 54f4faa4c16ea34bcd59d16e8da46a64b259fc07 创意公共零,第 1.0 版或 Apache 许可 2.0
zlib (数据压缩库),第 1.2.13 版 zlib 许可
Robert Penner 缓和方程 BSD 3 条款新 (或修订) 许可
用于 IEEE 双精度的高效二进制/十进制和十进制/二进制转换例程,第 3.2.1 版 BSD 3 条款新 (或修订) 许可
KWin,第 5.13.4 版 BSD 3 条款
MD4 公共领域
MD5 公共领域
PCRE2 - 无堆栈即时编译器,第 10.42 版 BSD 2 条款简化许可
PCRE2,第 10.42 版 具有 PCRE2 像二进制包例外的 BSD 3 条款 New (或 Revised) 许可
QEventDispatcher 在 macOS BSD 3 条款新 (或修订) 许可
安全哈希算法 SHA-1 公共领域
安全哈希算法 SHA-3 - Keccak,第 3.2 版 创意公共零,第 1.0 通用版
安全哈希算法 SHA-3 - brg_endian,版本 https://github.com/BrianGladman/sha/ 提交 4b9e13ead2c5b5e41ca27c65de4dd69ae0bac228 BSD 2 条款简化许可
安全哈希算法 SHA-384 和 SHA-512 BSD 3 条款新 (或修订) 许可
SipHash 算法 创意公共零,第 1.0 通用版
TinyCBOR,第 0.6.0 版 MIT 许可
UCD (Unicode 字符数据库),第 30 版 Unicode 许可协议 - 数据文件和软件 (2016)
Unicode CLDR (公共区域设置数据存储库),第 42 版 Unicode 许可协议 - 数据文件和软件 (2016)
extra-cmake-modules,第 5.84.0 版 BSD 3 条款
forkfd MIT 许可