所有模块

Qt 必需

Qt 必需定义所有平台的 Qt 基础。可用于所有支持开发平台和测试目标平台。它们将在 Qt 5 期间保留源代码和二进制的兼容。

必需模块对于大多数 Qt 应用程序而言,是通用和有用的。用于特殊目的的模块被视为附件模块,即使它可用于所有支持平台。

下表列出了 Qt 必需:

模块 描述
Qt Core 用于其它模块的核心非图形类。
Qt GUI 图形用户界面 GUI 组件基类。包括 OpenGL。
Qt Multimedia 音频 视频 无线电 摄像头功能类。
Qt Multimedia Widgets 用于实现多媒体功能,基于 Widget 的类。
Qt Network 使网络编程更容易和更可移植的类。
Qt QML QML 和 JavaScript 语言类。
Qt Quick 采用自定义 UI (用户界面) 构建高动态应用程序的声明式框架。
Qt Quick Controls 能创建经典桌面风格用户界面,基于 UI 控件的可重用 Qt Quick。
Qt Quick Dialogs 用于从 Qt Quick 应用程序创建系统对话框,并与之交互的类型。
Qt Quick Layouts 布局是用于在用户界面中排列基于 Qt Quick 2 项的项。
Qt SQL 集成使用 SQL 数据库的类。
Qt Test 单元测试 Qt 应用程序和库的类。
Qt Widgets 以 C++ 小部件扩展 Qt GUI 的类。

若使用 qmake 构建工程, Qt Core and Qt GUI 模块默认情况下是包括的。要仅链接到 Qt Core,把以下行添加到 .pro 文件:

QT -= gui
					

在 Windows,如不使用 qmake 或其它构建工具,譬如: CMake ,还需要链接到 qtmain 库。

Qt 附件

Qt Add-On 模块为特定目的,带来额外价值。这些模块只可用于某些开发平台。许多附件模块要么特征完整,要么是为向后兼容而存在的,或仅适用于某些平台。每个附件模块,分别指定其兼容性承诺。

Qt 安装程序包括下载附件的选项。更多信息,拜访 Qt 快速入门 页面。

下表列出了 Qt 附件:

模块 开发平台 目标平台 描述
Active Qt Windows 使用 ActiveX 和 COM 的应用程序类
Qt 3D 所有 支持 2D 3D 近实时仿真系统渲染功能。
Enginio (弃用) 所有 所有 后端即服务解决方案,简化已连接及数据驱动应用程序的后端开发。
Qt Android Extras 所有 Android 提供 Android 特定平台 API。
Qt Bluetooth 所有 Android , iOS , Linux and macOS 提供对蓝牙硬件的访问。
Qt Canvas 3D 所有 启用像 OpenGL 的 3D 绘制调用,使用 JavaScript 从 Qt Quick 应用程序。
Qt Concurrent 用于编写多线程程序 (无需使用低级线程原语) 的类。
Qt D-Bus 所有 透过 D-Bus 协议进行进程间通信的类。
Qt Gamepad 所有 Android , iOS , macOS ,tvOS (包括 tvOS 远程), Linux , Windows 使 Qt 应用程序能够支持手柄硬件的使用。
Qt Graphical Effects 所有 用于 Qt Quick 2 的图形效果。
Qt Image Formats 所有 额外图像格式插件:TIFF MNG TGA WBMP。
Qt Location 所有 所有 在 QML 应用程序中显示地图、导航和所在地内容。
Qt Mac Extras 所有 macOS 提供 macOS 特定平台 API。
Qt NFC 所有 Android and Linux 提供对 NFC (近场通信) 硬件的访问。
Qt OpenGL (弃用) OpenGL 支持类。弃用代之 QOpenGL* 类在 Qt GUI 模块。
Qt Platform Headers 提供的类封装特定平台信息,捆绑给定运行时配置为 平台插件 .
Qt Positioning 所有 Android , iOS , macOS , Linux , WinRT . 提供访问位置 卫星和区域监视的类。
Qt Print Support 所有 使打印更容易 更可移植的类。
Qt Purchasing 所有 Android , iOS ,和 macOS . 使在 Qt 应用程序中能够购买 APP 内产品。
Qt Quick Controls 2 所有 为嵌入式和移动设备创建高性能用户界面提供轻量 QML 类型。这些控件通过运用简化样式体系结构达成提高效率相比 Qt Quick Controls 。使用这些类型要结合 Qt Quick and Qt Quick Layouts .
Qt Quick Extras 所有 提供用于构建 Qt Quick 界面的一套专用控件。
Qt Quick Widgets 所有 提供用于显示 Qt Quick 用户界面的 C++ Widget 类。
Qt Script (弃用) 所有 使 Qt 应用程序可编写脚本的类。弃用代之 QJS* 类在 Qt QML 模块。
Qt SCXML 所有 所有 提供用于从 SCXML (状态图表 XML) 文件创建状态机,并将它们嵌入应用程序的类和工具。
Qt Script Tools (弃用) 所有 额外组件,为应用程序使用 Qt Script .
Qt Sensors 所有 Android , Qt for iOS , WinRT and Mer. 提供对传感器硬件和运动手势识别的访问。
Qt Serial Bus Linux Linux and Boot to Qt 目标。 提供对串行工业总线接口的访问。目前,模块支持 CAN bus 和 Modbus 协议。
Qt Serial Port 所有 Windows , Linux ,和 macOS . 提供对硬件和虚拟串行端口的访问。
Qt SVG 所有 用于显示 SVG 文件内容的类。支持子集 SVG 1.2 Tiny 标准。
Qt WebChannel 所有 所有 提供访问 QObject 或 QML 对象从 HTML 客户端,为无缝集成 Qt 应用程序与 HTML/JavaScript 客户端。
Qt WebEngine 所有 Windows , Linux ,和 macOS . 把 Web 内容嵌入应用程序的类和函数,采用 Chromium 浏览器工程 .
Qt WebSockets 所有 所有 提供的 WebSocket 通信兼容 RFC 6455 .
Qt WebView 所有 采用本机 Web 引擎的平台。 通过使用平台本机 API 在 QML 应用程序中显示 Web 内容,无需包括完整 Web 浏览器堆栈。
Qt Windows Extras 所有 Windows 提供 Windows 特定平台 API。
Qt X11 Extras 所有 Linux/X11 为 X11 提供特定平台 API。
Qt XML

SAX 和 DOM 的 C++ 实现。

注意: 此模块不需要使用 QXmlStreamReader and QXmlStreamWriter 。它们已属于 Qt Core .

Qt XML Patterns 支持 XPath, XQuery ,XSLT 和 XML 模式验证。
Qt Wayland Compositor Linux Linux and Boot to Qt 目标。 提供开发 Wayland 合成器的框架。

可用于商业许可或 GNU GPL (一般公共许可) v3 下的附件

Qt Charts 所有 用于显示视觉上令人愉悦的图表 (由静态或动态数据模型驱动) UI 组件。
Qt Data Visualization 所有 所有 用于创建惊人 3D 数据可视化的 UI 组件。
Qt Virtual Keyboard 所有 Linux and Windows 桌面,及 Boot to Qt 目标。 用于实现不同输入法及 QML 虚拟键盘的框架。支持本地化键盘布局和自定义视觉主题。

增值模块

除作为 Qt 5 部分发布的模块外,以下模块和工具构建于 Qt 库之上,以提供额外价值。它们有自己的发布时间表,且在商业许可下是可用的。

特征 描述
Qt for Device Creation 用于快速、轻松且全集成开发嵌入式设备应用程序的工具。包括大多数其它增值特征。
Qt Quick 编译器 您能够把 .qml 源文件编译成应用程序二进制文件,改善代码资产的加载时间和安全性。

技术预览模块

以下模块仍在开发中,但可用作技术预览。

模块 描述
Qt Network Authorization 为基于 OAuth 的在线服务授权提供支持。
Qt Speech 提供对可访问性特征 (譬如:TTS 文本转语音) 的支持。
Qt Remote Objects 提供易于使用的机制为共享 QObject 的 API (特性/信号/槽) 在进程或设备之间。

Qt 工具

Qt 工具 运行于所有支持开发平台,并促进应用程序的开发和设计。

下表列出 Qt 工具:

工具 描述
Qt Designer 类为扩展 Qt Designer .
Qt Help 将在线文档编制集成到应用程序中的类,类似 Qt Assistant。
Qt UI Tools 用于处理表单的类,创建于 Qt Designer .

从这里开始

我们邀您探索 Qt 的其余部分。我们准备的概述帮助您决定要使用哪些 API,示例演示如何使用 API。