所有模块

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。