第二章 Qt 模块

最新参见 All Modules | Qt 6

Qt不但拥有了完善的C++图形库,而且集成了数据库、OpenGL库、多媒体库、网络、脚本库、XML库、WebKit库等等,其核心库还加入了进程间通信、多线程等模块,极大的丰富了Qt开发大规模复杂跨平台应用程序的能力,真正意义上实现了其研发宗旨"Code Less; Create More; Deploy Anywhere"。

1 Qt 基础模块

Qt 基础模块为所有平台上的 Qt 奠定了基础。它们在所有支持的开发平台和经过测试的目标平台上均可用。除了测试模块(测试模块将保持源兼容性)外,这些模块在整个 Qt 6 版本中都将保持源兼容性和二进制兼容性。

基础模块具有通用性,对大多数 Qt 应用程序都很有用。即便某个模块在所有支持的平台上都可用,但如果它用于特定目的,那么它会被视为附加模块。

  • Qt Core:其他模块使用的核心非图形类。
  • Qt GUI:图形用户界面(GUI)部件的基类。
  • Qt Widgets:使用 C++ 小部件扩展 Qt GUI 的类。
  • Qt Network:使网络编程更轻松、更具可移植性的类。
  • Qt D-Bus:通过 D-Bus 协议进行进程间通信的类。 这个模块多用在Linux系统上,但是也可在Windows平台使用,但是必须安装第三方的DBus服务程序。
  • Qt Qml:用于 QML 和 JavaScript 语言的类。
  • Qt Quick:一种声明式框架,用于构建具有自定义用户界面的高度动态应用程序。
  • Qt Quick Controls:轻量级 QML 类型,用于为桌面、嵌入式和移动设备创建高性能用户界面。
  • Qt Quick Dialogs:用于从 Qt Quick 应用程序创建系统对话框并与之交互的类型。
  • Qt Quick Layouts:布局是用于在用户界面中排列基于 Qt Quick 2 的项目的元素。
  • Qt Quick Test:用于 QML 应用程序的单元测试框架,其中测试用例以 JavaScript 函数编写。
  • Qt Test:用于对 Qt 应用程序和库进行单元测试的类。

2 Qt 附加模块

Qt 附加模块为特定目的带来额外价值。这些模块可能仅在某些开发平台上可用。许多附加模块要么功能完备且为了向后兼容而存在,要么仅适用于特定平台。每个附加模块会单独说明其兼容性承诺。

Qt 安装程序提供下载附加模块的选项。如需更多信息,请访问 Getting Started with Qt 页面。

  • Qt Concurrent:用于编写多线程程序而无需使用低级线程原语的类。
  • Qt SQL:用于使用 SQL 进行数据库集成的类。
  • Qt Serial Port:提供用于与硬件和虚拟串口交互的类。
  • Qt XML:以文档对象模型(DOM)API 处理 XML。
  • Active Qt:用于使用 ActiveX 和 COM 的应用程序的类(仅适用于 Windows)。
  • Qt Bluetooth:访问蓝牙设备。
  • Qt Charts:用于显示美观图表的用户界面组件,由静态或动态数据模型驱动。
  • Qt CoAP:实现 RFC 7252 定义的 CoAP 客户端。
  • Qt Data Visualization:用于创建令人惊叹的 3D 数据可视化的用户界面组件。
  • Qt Graphs:提供在 3D 中以柱状图、散点图和表面图,以及在 2D 中以面积图、柱状图、甜甜圈图、折线图、饼图、散点图和样条图可视化数据的功能。
  • Qt GRPC:能够根据用于与 gRPC® 服务通信的 protobuf 规范生成基于 Qt 的类。
  • Qt Help:用于将文档集成到应用程序中的类。
  • Qt HTTP Server:用于将 HTTP 服务器嵌入到 Qt 应用程序中的框架。
  • Qt Image Formats:用于支持额外图像格式(TIFF、MNG、TGA、WBMP)的插件。
  • Qt Lottie Animation:一个 QML API,用于渲染由 Adobe® After Effects 的 Bodymovin 插件导出的 JSON 格式图形和动画。
  • Qt MQTT:提供 MQTT 协议规范的实现。
  • Qt Multimedia:一组丰富的 QML 类型和 C++ 类,用于处理多媒体内容,还包括处理相机访问的 API。
  • Qt Network Authorization:为基于 OAuth 的在线服务授权提供支持。
  • Qt NFC:提供对近场通信(NFC)硬件的访问。在桌面平台上,仅支持对 Type 4 标签的 NDEF 访问。
  • Qt OPC UA:用于工业应用中数据建模和数据交换的协议。
  • Qt OpenGL:使在 Qt 应用程序中使用 OpenGL 变得容易的 C++ 类。一个单独的库(Qt OpenGL Widgets)提供用于渲染 OpenGL 图形的小部件。
  • Qt Positioning:提供对位置、卫星信息和区域监测类的访问。
  • Qt Print Support:使打印更轻松、更具可移植性的类。
  • Qt Protobuf:能够根据 protobuf 规范生成基于 Qt 的类。
  • Qt Quick 3D:提供用于基于 Qt Quick 创建 3D 内容或用户界面的高级 API。
  • Qt Quick 3D Physics:为 Qt Quick 3D 添加物理模拟功能的高级 QML 模块。
  • Qt Quick Widgets:提供用于显示 Qt Quick 用户界面的 C++ 小部件类。
  • Qt Quick Effects:提供用于对 Qt Quick 项目应用一个或多个简单图形效果的 QML 类型。
  • Qt Quick Particles:提供用于粒子效果的 QML 类型。
  • Qt Quick Timeline:支持基于关键帧的动画和参数化。
  • Qt Remote Objects:提供一种易于使用的机制,用于在进程或设备之间共享 QObject 的 API(属性 / 信号 / 槽)。
  • Qt SCXML:提供用于从 SCXML 文件创建状态机并将其嵌入应用程序的类和工具。
  • Qt Sensors:提供对 Android、iOS 和 Windows 平台上传感器硬件的访问。
  • Qt Serial Bus:提供对串行工业总线接口的访问。目前,该模块支持 CAN 总线和 Modbus 协议。
  • Qt Shader Tools:为跨平台的 Qt 着色器管道提供工具。这些工具能够处理图形和计算着色器,使其可用于 Qt Quick 和 Qt 生态系统中的其他组件。
  • Qt Spatial Audio:提供对空间音频的支持。可在包含不同声源和房间相关属性(如混响)的 3D 空间中创建音景。
  • Qt State Machine:提供用于创建和执行状态图的类。
  • Qt SVG:用于显示 SVG 文件内容的类。支持 SVG 1.2 Tiny 标准的子集。一个单独的库(Qt SVG Widgets)提供在小部件用户界面中渲染 SVG 文件的支持。
  • Qt TextToSpeech:提供从文本合成语音并将其作为音频输出播放的支持。
  • Qt UI Tools:用于在运行时动态加载在 Qt Widgets Designer 中创建的基于 QWidget 的窗体的类。
  • Qt Virtual Keyboard:用于实现不同输入法的框架,以及一个 QML 虚拟键盘。支持本地化键盘布局和自定义视觉主题。
  • Qt Wayland Compositor:提供用于在 Linux 和 Boot to Qt 目标上开发 Wayland 合成器的框架。
  • Qt WebChannel:允许 HTML 客户端访问 QObject 或 QML 对象,以便将 Qt 应用程序与 HTML/JavaScript 客户端无缝集成。
  • Qt WebSockets:提供符合 RFC 6455 的 WebSocket 通信功能。
  • Qt WebView:通过使用特定平台的 API 在 QML 应用程序中显示网页内容,无需包含完整的浏览器堆栈。
  • Qt 5 兼容性 API :图形效果:为了兼容而提供的 Qt 5 中的 Qt 图形效果模块。
  • Qt 5 核心兼容性 API:Qt 5 中存在但 Qt 6 中没有的 Qt 核心 API。
  • Qt Location:提供用于创建位置感知应用程序的 QML 和 C++ 接口。

3 Qt 扩展模块

扩展模块为 Qt 带来额外功能。它们可能是某个 Qt 版本的一部分,但在发布计划、平台支持、Qt 提供的二进制文件、商业支持或兼容性承诺方面可能与其他 Qt 模块有所不同。你可以在每个扩展模块的文档中找到具体细节。

  • Qt WebEngine:使用 Chromium 浏览器项目在应用程序中嵌入网页内容的类和函数。
  • Qt PDF:用于在桌面平台上渲染 PDF 文档的类和函数。
相关推荐
yaoxin5211232 小时前
364. Java IO API - 复制文件和目录
java·开发语言
仲舟2 小时前
【Qt游戏】骰子街Machi_Koro_AI
c++·人工智能·qt·游戏
念念不忘 必有回响2 小时前
Drizzle ORM上手指南:在Next.js中优雅地操作PostgreSQL
开发语言·postgresql·nodejs·nextjs·drizzle
Sylvia-girl2 小时前
c语言-2-数据类型和变量
c语言·开发语言
白露与泡影3 小时前
金三银四高频 Java 面试题及答案整理 (建议收藏)
java·开发语言
小杍随笔3 小时前
【Rust 半小时速成(2024 Edition 更新版)】
开发语言·后端·rust
REDcker3 小时前
ARMv8、AArch64 与 arm64:命名与体系结构要点
开发语言·c++·arm
LXXgalaxy3 小时前
Uni-app 小程序页面跳转带参实战笔记(含对象传参与防坑)
开发语言·前端·javascript
oi..3 小时前
Flag和JavaScript document有关
开发语言·前端·javascript·经验分享·笔记·安全·网络安全