当前位置: 首页 > news >正文

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加速渲染,适合现代界面开发)
QtOpenGLOpenGL集成(提供Qt与OpenGL的互操作接口)
QtWaylandWayland协议支持(用于Linux现代显示服务器)

3. 多媒体与图形

模块名称功能描述
QtMultimedia音视频处理(播放/录制、摄像头访问、音频特效等)
QtOpenGLWidgets在Widgets应用中嵌入OpenGL内容
QtSvgSVG矢量图形支持(渲染和操作SVG文件)
QtCharts图表绘制(折线图、柱状图、饼图等)

4. Web 与网络

模块名称功能描述
QtWebEngine基于Chromium的浏览器引擎(支持完整网页渲染,需注意ARM兼容性)
QtWebSocketsWebSocket协议实现(实时双向通信)
QtNetworkAuthOAuth认证支持(集成第三方登录如Google/Facebook)

5. 嵌入式专用模块

模块名称功能描述
QtVirtualKeyboard虚拟键盘(支持触摸屏输入,可定制布局)
QtSerialPort串口通信(RS232/485等)
QtMqttMQTT协议支持(物联网设备通信)
QtBluetooth蓝牙设备控制(搜索/连接/数据传输)

6. 工具与辅助模块

模块名称功能描述
QtLinguist国际化工具(翻译文件.ts编辑)
QtTest单元测试框架(支持信号测试和基准测试)
QtScriptJavaScript脚本引擎(已弃用,推荐用QML/JS替代)
Qt3D3D图形框架(支持OpenGL和Vulkan,用于3D场景渲染)

7. 企业级功能(需商业许可)

模块名称功能描述
QtCharts高级商业图表(比开源版功能更完整)
QtDataVisualization3D数据可视化(柱状图/散点图的3D呈现)
QtQuick3D硬件加速的3D QML组件

关键模块依赖关系

 

如何选择模块?

  1. 桌面应用QtWidgets + QtCharts + QtNetwork

  2. 移动/嵌入式UIQtQuick + QtVirtualKeyboard + QtMqtt

  3. 浏览器应用QtWebEngine(注意ARM需交叉编译Chromium)

  4. 工业控制QtSerialPort + QtCharts + Qt3D

使用qmakeCMake时,通过QT += <模块名>添加依赖(如QT += quick webengine)。

 

二、qtbase 模块

qtbase 模块一般用于QT移植arm等平台时,选择安装的基本模块。

qtbase 模块是 Qt 框架的核心部分,包含了最基础且必需的模块。以下是 qtbase 包含的主要模块及其功能详解:

1. 核心模块(Essential Modules)

模块名功能描述
QtCore非GUI核心功能:
• 信号槽机制
• 事件循环
• 线程管理(QThread
• 文件/目录操作(QFileQDir
• 容器类(QListQMap
• JSON/XML 处理
QtGui基础图形和窗口系统抽象:
• 图像处理(QImageQPixmap
• 字体渲染(QFont
• OpenGL 抽象层(QOpenGL*
• 高DPI 支持
QtWidgets传统桌面UI组件库:
• 按钮(QPushButton
• 窗口(QMainWindow
• 表格(QTableView
• 布局管理器(QLayout

2. 基础功能模块(Basic Functionality)

模块名功能描述
QtNetwork网络通信:
• TCP/UDP(QTcpSocketQUdpSocket
• HTTP(QNetworkAccessManager
• SSL/TLS 支持
QtConcurrent并行计算框架:
• QtConcurrent::run 异步任务
• MapReduce 模型
QtSql数据库访问:
• 支持 SQLite/MySQL/PostgreSQL
• 提供 QSqlTableModel 等模型类
QtTest单元测试框架:
• 支持信号测试(QSignalSpy
• 基准测试(QBENCHMARK

3. 图形与多媒体基础

模块名功能描述
QtOpenGLOpenGL 集成:
• 提供 QOpenGLWidget(在 Widgets 中嵌入 OpenGL)
• 抽象 OpenGL 上下文管理
QtPrintSupport打印功能:
• 打印机控制(QPrinter
• PDF 输出支持
QtSvgSVG 矢量图形渲染:
• 支持 SVG 1.2 标准

4. 平台抽象层

模块名功能描述
QtPlatformHeaders平台原生API头文件(如 macOS Metal、Windows Direct3D)
QtEglSupportEGL(嵌入式 OpenGL)平台集成(用于嵌入式Linux/Android)

5. 工具与工具链

模块名功能描述
QtBootstrapQt 构建系统的初始引导工具(内部使用)
QtTools开发工具:
• rcc(资源编译器)
• uic(UI 文件编译器)
• moc(元对象编译器)

关键说明

  1. 不包含的模块
    QtBase 不包含 以下模块(需单独编译或通过 QT += <module> 添加):

    • QtQuick / QtQml(声明式UI框架)

    • QtWebEngine(浏览器引擎)

    • QtMultimedia(高级音视频处理)

    • QtBluetooth / QtSerialPort(硬件交互)

  2. 模块依赖关系

  3. 编译选项
    在配置 QtBase 时,可通过 -skip <module> 排除模块(如 -skip qtwebsockets),或通过 -qt-<feature> 启用功能(如 -qt-sql-sqlite)。

典型使用场景

  • 最小化部署:仅依赖 QtCore + QtGui(无UI的守护进程)。

  • 桌面应用QtCore + QtGui + QtWidgets

  • 嵌入式基础QtCore + QtGui + QtOpenGL(EGLFS 平台插件)。

如果需要更高级功能(如 QML、WebEngine),需额外编译对应模块。

相关文章:

  • Python星球日记 - 第15天:综合复习(回顾前14天所学知识)
  • git命令自动拉去远程分支到本地
  • 基于RoboTwin的数据训练RDT开源VLA模型
  • 牛客华为机试--HJ48 从单向链表中删除指定值的节点C++
  • 典型反模式深度解析及重构方案
  • 什么是 Git?为什么要用版本控制?
  • Python爬虫第三战(使用session登录小说网获取书单)
  • 蓝桥备赛指南(14):树的直径与重心
  • 判断矩阵A和矩阵B是否相似?
  • 解决使用PendingIntent.getBroadcast时出现java.lang.IllegalArgumentException异常的问题
  • (四十)Dart 中的空安全(Null Safety)教程
  • Web品质 - 重要的HTML元素
  • Linux 命令清单(Linux Command List)
  • MySQL随机获取记录之方法(The Method of Randomly Obtaining Records in MySQL)
  • 【python3】关于等额本金和等额本息计算
  • Activiti(二)- 基于SpringBoot开发配置activiti相关配置项
  • 深入理解C++面向对象特性之一 多态
  • Linux驱动开发进阶(六)- 多线程与并发
  • Redis到底能不能做主数据库?
  • xv6-labs-2024 lab1
  • “一百零一个愿望——汉字艺术展”亮相意大利威尼斯
  • 汤加附近海域发生6.4级地震
  • 中国至越南河内国际道路运输线路正式开通
  • A股三大股指涨跌互现:银行股领涨,两市成交12915亿元
  • Manus向全球用户开放注册
  • 睡觉总做梦是睡眠质量差?梦到这些事,才要小心