2021.6.3:QT——类库模块
Qt类库中大量的类根据功能划分为了各种模块,这些模块又分为以下几大类:
- Qt基本模块(Qt Essentials):提供Qt的基本功能
- Qt附加模块(Qt Add-Ons):一些特定功能模块
- 增值模块(Value-Add Modules):单独发布的额外价值的模块
- 技术预览模块(Technology Preview Modules):处于开发阶段,但可以作为技术预览使用的模块
- Qt工具(Qt Tools):帮助应用程序开发的一些工具
提示:Qt官网的"All Modules"页面中可以查看这些模块的信息。
Qt基本模块
Qt基本模块是Qt在所有平台上的基本功能,它们在所有开发平台和目标平台上都可用。
在Qt 5所有版本上是源代码和二进制兼容的。
这些具体的Modules见下表:
| Modules | 描述 |
| core | 其他Modules都用到的核心非图形类 |
| GUI | 设计GUI界面的基础类,包括OpenGL |
| Multimedia | 音频、视频、摄像头、广播功能类 |
| Multimedia Widgets | 实现多媒体功能的界面组件类 |
| Network | 使网络编程更简单和轻便的类 |
| QML | 用于QML和JavaScript的类 |
| Quick | 用于构建 具有定制用户界面的动态APP 的声明框架 |
| Quick Controls | 创建桌面样式用户界面。基于Quick的用户界面控件 |
| Quick Dialogs | 用于Quick的系统对话框类 |
| Quick Layouts | 用于Quick2界面元素的布局项 |
| SQL | 使用SQL用于数据库操作的类 |
| Test | 使用应用程序和库进行单元测试的类 |
| Widgets | 用于构建GUI界面的C++图形组件类 |
Core模块是Qt类库的核心,所有其他模块都依赖于此,如果使用qmake构建项目,则Core模块是自动被加入项目的。
GUI模块提供了用于开发GUI应用程序的必要的类,使用qmake构建应用程序时,GUI模块是自动被加入项目的。如果项目中不使用GUI功能,则需要在项目配置文件(.pro)加入如下的一行:
QT -= gui
其他的模块一般不会被自动加入到项目,如果需要在项目中使用某个模块,可以在.pro文件中添加此模块。例如,如果需要在项目中使用Multimedia和Multimedia Widgets模块,则需要在.pro文件中加入如下的语句:
QT += multimedia multimediawidgets
如果在项目中用到了SQL模块,则需要在.pro文件中加入如下语句:
QT += sql
Qt附加模块
附加模块可以实现一些特定的目的。这些模块可能只有在某些开发平台上有,或者只能用于某些操作系统,或者只是为了向后兼容。用户安装时可以选择性地安装这些附加模块。
下表是附加模块表(未列出一些过时的模块,以及专门用于QML或Qt Quick的模块)
| Modules | 描述 |
| Active Qt | 用于开发使用ActiveX和COM的Windows程序 |
| 3D | 支持2D和3D渲染 |
| Android Extras | 提供Android平台相关的API |
| Bluetooth | 提供访问蓝牙硬件的功能 |
| Concurrent | 提供一些类,无需使用底层的线程控制就可以编写多线程程序 |
| D-Bus | 使进程间通过D-Bus协议通信的一些类 |
| Gamepad | 游戏手柄 |
| Image Formats | 支持附加图片格式的插件,包括TIFF、MNG、TGA、WBMP |
| Mac Extras | macOS平台相关的API |
| NFC | NFC硬件 |
| Positioning | GPS、WiFi定位 |
| Print Support | 打印控制 |
| Purchasing | Qt APP中购买功能 |
| Sensors | 传感器硬件 |
| Serial Bus | 串行访问工业总线,目前只支持CAN和Modbus协议 |
| SVG | SVG图片文件 |
| WebChannd | 服务器端(QML或C++应用程序)与客户端(HTML/JavaScript或QML应用程序)间的P2P通信 |
| WebEngine | 提供类和函数,用于在应用程序中嵌入网页内容 |
| WebSocket | 兼容于RFC 6455的WebSocket通信,是实现客户端程序与远端主机双向通信的基于Web的协议 |
| Windows Extras | Windows平台相关的API |
| XML | 此模块不再维护了,应使用QtCore中的QXMLStreamReader和QXMLStreamWriter、Qt XML Patterns提供对XPath、XQuery、XSLT和XML等的支持 |
| Charts | 用于数据显示的二维图表组件 |
| Data Visualization | 3D数据可视化显示的界面组件 |
| Virtual Keyboard | 实现不同输入法的虚拟键盘框架 |
增值模块
除了随Qt 5发布的上述这些模块,还有一些模块是单独发布的,这些模块只有在商业版许可的Qt里才有:
| Qt for Device Creation | 高效、易用、全集成的嵌入式设备应用程序开发工具,包括很多其他增值特性 |
| Qt Quick Compiler | 编译.qml源文件生成二进制应用程序的编译器,提高载入时间和代码的安全性 |
技术预览模块
一些还处于开发和测试阶段的模块,一般技术预览模块经过几个版本的发布后会变成正式的模块。
Qt工具
Qt工具在所有支持的平台上都可以使用,用于帮助应用程序的开发与设计。
| 工具 | 描述 |
| Qt Designer | 用于扩展Qt Designer的类 |
| Qt Help | 在应用程序中集成在线文档的类,实现类似于Qt Assistant的功能 |
| QtUI Tools | 操作Qt Designer生成的窗体的类 |

浙公网安备 33010602011771号