Qt子模块的功能介绍
一、Qt 主要子模块的功能介绍
1. 核心模块
模块名称 | 功能描述 |
---|---|
QtCore | 核心非GUI功能(信号槽、线程、文件IO、容器类、JSON/XML处理等) |
QtGui | 基础图形绘制(窗口系统集成、OpenGL抽象、图像处理、字体管理等) |
QtConcurrent | 高级多线程API(并行计算框架,如QtConcurrent::run ) |
QtNetwork | 网络功能(TCP/UDP、HTTP、SSL、DNS、WebSockets等) |
QtSql | 数据库集成(支持SQLite/MySQL/PostgreSQL等,提供模型/视图接口) |
2. GUI 与窗口系统
模块名称 | 功能描述 |
---|---|
QtWidgets | 传统桌面UI组件(按钮、表格、对话框等,基于CPU渲染) |
QtQuick | 声明式UI框架(QML语言 + GPU加速渲染,适合现代界面开发) |
QtOpenGL | OpenGL集成(提供Qt与OpenGL的互操作接口) |
QtWayland | Wayland协议支持(用于Linux现代显示服务器) |
3. 多媒体与图形
模块名称 | 功能描述 |
---|---|
QtMultimedia | 音视频处理(播放/录制、摄像头访问、音频特效等) |
QtOpenGLWidgets | 在Widgets应用中嵌入OpenGL内容 |
QtSvg | SVG矢量图形支持(渲染和操作SVG文件) |
QtCharts | 图表绘制(折线图、柱状图、饼图等) |
4. Web 与网络
模块名称 | 功能描述 |
---|---|
QtWebEngine | 基于Chromium的浏览器引擎(支持完整网页渲染,需注意ARM兼容性) |
QtWebSockets | WebSocket协议实现(实时双向通信) |
QtNetworkAuth | OAuth认证支持(集成第三方登录如Google/Facebook) |
5. 嵌入式专用模块
模块名称 | 功能描述 |
---|---|
QtVirtualKeyboard | 虚拟键盘(支持触摸屏输入,可定制布局) |
QtSerialPort | 串口通信(RS232/485等) |
QtMqtt | MQTT协议支持(物联网设备通信) |
QtBluetooth | 蓝牙设备控制(搜索/连接/数据传输) |
6. 工具与辅助模块
模块名称 | 功能描述 |
---|---|
QtLinguist | 国际化工具(翻译文件.ts 编辑) |
QtTest | 单元测试框架(支持信号测试和基准测试) |
QtScript | JavaScript脚本引擎(已弃用,推荐用QML/JS替代) |
Qt3D | 3D图形框架(支持OpenGL和Vulkan,用于3D场景渲染) |
7. 企业级功能(需商业许可)
模块名称 | 功能描述 |
---|---|
QtCharts | 高级商业图表(比开源版功能更完整) |
QtDataVisualization | 3D数据可视化(柱状图/散点图的3D呈现) |
QtQuick3D | 硬件加速的3D QML组件 |
关键模块依赖关系
如何选择模块?
-
桌面应用:
QtWidgets
+QtCharts
+QtNetwork
-
移动/嵌入式UI:
QtQuick
+QtVirtualKeyboard
+QtMqtt
-
浏览器应用:
QtWebEngine
(注意ARM需交叉编译Chromium) -
工业控制:
QtSerialPort
+QtCharts
+Qt3D
使用qmake
或CMake
时,通过QT += <模块名>
添加依赖(如QT += quick webengine
)。
二、qtbase
模块
qtbase
模块一般用于QT移植arm等平台时,选择安装的基本模块。
qtbase
模块是 Qt 框架的核心部分,包含了最基础且必需的模块。以下是 qtbase
包含的主要模块及其功能详解:
1. 核心模块(Essential Modules)
模块名 | 功能描述 |
---|---|
QtCore | 非GUI核心功能: • 信号槽机制 • 事件循环 • 线程管理( QThread )• 文件/目录操作( QFile 、QDir )• 容器类( QList 、QMap )• JSON/XML 处理 |
QtGui | 基础图形和窗口系统抽象: • 图像处理( QImage 、QPixmap )• 字体渲染( QFont )• OpenGL 抽象层( QOpenGL* )• 高DPI 支持 |
QtWidgets | 传统桌面UI组件库: • 按钮( QPushButton )• 窗口( QMainWindow )• 表格( QTableView )• 布局管理器( QLayout ) |
2. 基础功能模块(Basic Functionality)
模块名 | 功能描述 |
---|---|
QtNetwork | 网络通信: • TCP/UDP( QTcpSocket 、QUdpSocket )• HTTP( QNetworkAccessManager )• SSL/TLS 支持 |
QtConcurrent | 并行计算框架: • QtConcurrent::run 异步任务• MapReduce 模型 |
QtSql | 数据库访问: • 支持 SQLite/MySQL/PostgreSQL • 提供 QSqlTableModel 等模型类 |
QtTest | 单元测试框架: • 支持信号测试( QSignalSpy )• 基准测试( QBENCHMARK ) |
3. 图形与多媒体基础
模块名 | 功能描述 |
---|---|
QtOpenGL | OpenGL 集成: • 提供 QOpenGLWidget (在 Widgets 中嵌入 OpenGL)• 抽象 OpenGL 上下文管理 |
QtPrintSupport | 打印功能: • 打印机控制( QPrinter )• PDF 输出支持 |
QtSvg | SVG 矢量图形渲染: • 支持 SVG 1.2 标准 |
4. 平台抽象层
模块名 | 功能描述 |
---|---|
QtPlatformHeaders | 平台原生API头文件(如 macOS Metal、Windows Direct3D) |
QtEglSupport | EGL(嵌入式 OpenGL)平台集成(用于嵌入式Linux/Android) |
5. 工具与工具链
模块名 | 功能描述 |
---|---|
QtBootstrap | Qt 构建系统的初始引导工具(内部使用) |
QtTools | 开发工具: • rcc (资源编译器)• uic (UI 文件编译器)• moc (元对象编译器) |
关键说明
-
不包含的模块:
QtBase 不包含 以下模块(需单独编译或通过QT += <module>
添加):-
QtQuick
/QtQml
(声明式UI框架) -
QtWebEngine
(浏览器引擎) -
QtMultimedia
(高级音视频处理) -
QtBluetooth
/QtSerialPort
(硬件交互)
-
-
模块依赖关系:
-
编译选项:
在配置 QtBase 时,可通过-skip <module>
排除模块(如-skip qtwebsockets
),或通过-qt-<feature>
启用功能(如-qt-sql-sqlite
)。
典型使用场景
-
最小化部署:仅依赖
QtCore
+QtGui
(无UI的守护进程)。 -
桌面应用:
QtCore
+QtGui
+QtWidgets
。 -
嵌入式基础:
QtCore
+QtGui
+QtOpenGL
(EGLFS 平台插件)。
如果需要更高级功能(如 QML、WebEngine),需额外编译对应模块。