Qt Core

Qt Core 添加了这些特性到 C++:

  • 一种非常强大的无缝对象通信机制,称为信号和槽
  • 可查询和可设计的对象属性
  • 分层和可查询的对象树
  • 对象所有权以自然的方式使用受保护的指针(QPointer
  • 跨库边界的动态转换

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

使用模块

使用 Qt 模块要求直接或透过其它依赖链接到模块库。一些构建工具为此有贡献支持,包括 CMakeqmake

用 CMake 构建

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

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

参见 用 CMake 构建 概述。

用 qmake 构建

若使用 qmake 去构建工程,Qt5Core 会被默认链接。

线程和并发编程

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

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

输入/输出、资源及容器

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

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

附加框架

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

模块演化

对 Qt 核心的更改 列出了 Qt 6 系列所做的模块 API 和功能的重要更改。

许可和归属

Qt Core 在商业许可下是可用的来自 Qt 公司。此外,它在自由软件许可下是可用的:GNU LGPL v3GNU GPL v2。见 Qt 许可

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

此外,Qt 6.2.0 的 Qt Core 可能包含的第三方模块遵循以下准许许可:

BLAKE2 (reference implementation), version 54f4faa4c16ea34bcd59d16e8da46a64b259fc07

Creative Commons Zero v1.0 Universal or Apache License 2.0

Data Compression Library (zlib), version 1.2.11

zlib License

Easing Equations by Robert Penner

BSD 3-clause "New" or "Revised" License

Efficient Binary-Decimal and Decimal-Binary Conversion Routines for IEEE Doubles, version 3.1.5-30-gbf46072

BSD 3-clause "New" or "Revised" License

FreeBSD strtoll and strtoull, version 18b29f3fb8abee5d57ed8f4a44f806bec7e0eeff

BSD 3-clause "New" or "Revised" License

KWin, version 5.13.4

BSD-3-Clause

KWin, version 5.13.4

BSD-3-Clause

MD4

Public Domain

MD5

Public Domain

PCRE2 - Stack-less Just-In-Time Compiler, version 10.37

BSD 2-clause "Simplified" License

PCRE2, version 10.37

BSD 3-clause "New" or "Revised" License

QEventDispatcher on macOS

BSD 3-clause "New" or "Revised" License

Secure Hash Algorithm SHA-1

Public Domain

Secure Hash Algorithm SHA-3 - Keccak, version 3.2

Creative Commons Zero v1.0 Universal

Secure Hash Algorithm SHA-3 - brg_endian, version https://github.com/BrianGladman/sha/ commit 4b9e13ead2c5b5e41ca27c65de4dd69ae0bac228

BSD 2-clause "Simplified" License

Secure Hash Algorithms SHA-384 and SHA-512

BSD 3-clause "New" or "Revised" License

SipHash Algorithm

Creative Commons Zero v1.0 Universal

The Public Suffix List, version d4e247a71d1b6da08dad906b098c818493166fcc, fetched on 2021-06-11

Mozilla Public License 2.0

TinyCBOR, version 0.6+patches

MIT License

Unicode Character Database (UCD), version 26

Unicode License Agreement - Data Files and Software (2016)

Unicode Common Locale Data Repository (CLDR), version v39

Unicode License Agreement - Data Files and Software (2016)

extra-cmake-modules, version 5.84.0

BSD-3-Clause

extra-cmake-modules, version 5.84.0

BSD-3-Clause

forkfd

MIT License

参考

这些是 API 参考材料链接。