百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

从零开始学Qt - 12:一文了解Qt类库的各种模块

bigegpt 2024-09-18 07:51 31 浏览

Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部。Qt 除了可以绘制漂亮的界面,还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些都以模块的形式内置在了Qt中。

Qt的模块根据功能分为几大类:

(1)Qt基本模块(Qt Essentials):提供了Qt在所有平台上的基本功能;

(2)Qt附加模块(Qt Add-Ons):实现一些特定功能的提供附加价值的模块;

(3)增值模块(Value-Add Modules):单独发布的提供额外价值的模块或工具;

(4)技术预览模块(Technology Preview Modules):一些处于开发阶段,但是可以作为技术预览使用的模块;

(5)过时的模块(Deprecated Modules):是指抛弃的旧模块,除非为了兼容旧版本,一般用不到。

大概了解一下Qt提供的模块的功能,能够在程序开发时做到心中有数,知道Qt是否提供了相关的功能以及到哪个模块去寻找。

下面以Qt 5.14版本为例,对各种类型的模块分别进行介绍。

一、Qt基本模块

Qt基本模块提供Qt在所有平台上的基本功能,它们在所有的开发平台和目标平台上都可用。这些具体的基本模块见下表。

模块

说明

Qt Core

被其他模块用到的核心非图形类

Qt GUI

设计GUI界面的基础类,包括OpenGL

Qt Multimedia

音频、视频、广播和摄像头功能

Qt Multimedia Widgets

实现多媒体功能的界面组件类

Qt Network

使网络编程更简单和轻便的类

Qt QML

用于QML和JavaScripts语言的类

Qt Quick

用于构建具有定制用户界面的动态应用程序的声明框架

Qt Quick Controls

提供轻量级 QML 类型,用于为桌面、嵌入式和移动设备创建高性能用户界面。这些类型采用简单的样式体系结构,并且非常高效。

Qt Quick Dialogs

用于Qt Quick的系统对话框类型

Qt Quick Layouts

用于Qt Quick 2界面元素的布局项

Qt Quick Test

QML 应用程序的单元测试框架,其中测试用例编写为 JavaScript 函数。

Qt SQL

使用SQL用于数据库操作的类

Qt Test

用于应用程序和库进行单元测试的类

Qt Widgets

用于构建GUI界面的C++图形组件类

如果使用qmake来构建项目,则默认情况下包含Qt Core和Qt GUI模块。如果项目中不使用GUI功能,则需要在项目配置文件(*.pro)中加入如下的一行:

QT -= gui

其他模块一般不会被自动加入到项目中,如果需要使用某个模块,可以在项目配置文件中添加。比如,需要使用Qt SQL模块,则添加如下的语句:

QT += sql

二、Qt附加模块

Qt附加模块可以实现一些特定目的。这些模块可能只在某些开发平台上有,或只能用于某些操作系统,或只是为了向后兼容。用户安装时可以选择性地安装这些附加模块。关于某个模块具体适用的操作系统,可以参见Qt官网的说明。

附加模块比较多,下面分几个类别说明。

(1)一般的模块

模块

描述

Active Qt

用于开发使用ActiveX和COM的Windows应用程序

Qt 3D

提供开发近实时仿真系统的功能,支持2D和3D渲染

Qt Bluetooth

提供访问蓝牙硬件的功能

Qt Concurrent

无需使用底层的线程控制就可以编写多线程程序

Qt D-Bus

使进程间通过D-Bus协议通信的类

Qt Gamepad

是Qt应用程序支持游戏手柄硬件

Qt Help

用于将文档集成到应用程序中的类,类似于Qt Assistant

Qt Image Formats

附加图像格式支持插件:TIFF, MNG, TGA, WBMP

Qt Location

在 QML 应用程序中显示地图、导航和放置内容

Qt NFC

提供对NFC硬件的访问

Qt PDF

用于渲染 PDF 文档的类和函数

Qt Positioning

访问位置、卫星和区域监视的类

Qt Print Support

使打印更轻松、更便携的类

Qt Purchasing

支持在 Qt 应用程序中应用内购买产品

Qt Remote Objects

提供一种易于使用的机制,用于在进程或设备之间共享 QObject 的 API(属性/信号/槽)

Qt SCXML

提供用于从 SCXML 文件创建状态机并将其嵌入到应用程序中的类和工具

Qt Sensors

提供对传感器硬件和运动手势识别的访问

Qt Serial Bus

提供对串行工业总线接口的访问。目前,该模块支持CAN总线和Modbus协议

Qt Serial Port

提供对实体和虚拟串行端口的访问

Qt Speech

提供对文本到语音转换等辅助功能的支持

Qt SVG

用于显示 SVG 文件内容的类。支持 SVG 1.2 Tiny 标准的子集

Qt UI Tools

用于加载基于 QWidget 窗体的类,这些窗体在运行时动态地在 Qt Designer中创建

Qt WebEngine

用于使用 Chromium 浏览器项目在应用程序中嵌入 Web 内容的类和函数

Qt WebSockets

提供兼容 RFC 6455 的 WebSocket 通信

Qt XML

C++ SAX 和 DOM 的实现。注意: 此模块不需要使用 QXmlStreamReader 和 QXmlStreamWriter。它们已经是Qt Core的一部分。

Qt Charts

用于数据显示的二维图表组件

Qt Data Visualization

用于3D数据可视化显示的界面组件

Qt Network Authorization

为基于 OAuth 的联机服务授权提供支持

Qt Wayland Compositor

提供开发 Wayland 合成器的框架

Qt for WebAssembly

一个目标平台,用于使用WebAssembly为Web浏览器编译Qt应用程序

(2)平台支持模块

模块

描述

Qt Android Extras

提供Android平台相关的API

Qt Mac Extras

为 macOS 提供特定于平台的 API

Qt Platform Headers

提供封装特定于平台的信息的类,这些信息与平台插件的给定运行时配置相关联

Qt Windows Extras

为 Windows 提供特定于平台的 API

Qt X11 Extras

为 X11 提供特定于平台的 API

(3)专门用于QML或Qt Quick的模块

模块

描述

Qt Graphical Effects

用于Qt Quick 2的图形效果

Qt Location

在 QML 应用程序中显示地图、导航和放置内容

Qt Quick Extras

提供一组专用的控件,可用于在 Qt Quick 中构建接口

Qt Quick Timeline

支持基于关键帧的动画和参数化

Qt Quick Widgets

用于显示 Qt Quick用户界面的C++ Widget类

Qt WebChannel

提供从 HTML 客户端访问 QObject 或 QML 对象,以便将 Qt 应用程序与 HTML/JavaScript 客户端无缝集成

Qt WebView

通过使用平台原生 API 在 QML 应用程序中显示 Web 内容,而无需包含完整的 Web 浏览器堆栈

Qt Virtual Keyboard

用于实现包括QML虚拟键盘的不同输入法的框架以。支持本地化的键盘布局和自定义视觉主题

Qt Quick WebGL

提供一个平台插件,允许使用WebGL?通过网络流式地传输Qt Quick用户界面

三、增值模块

除了随着Qt5发布的上述模块外,还有一些模块在Qt库的基础上构建并提供额外的功能。这些模块是单独发布的,并且只在商业版许可的Qt里才有。

模块

描述

Qt Automotive Suite

用于开发车载信息娱乐 (IVI) 系统的软件组件和工具的集合。基于Qt for Device Creation产品构建,符合GENIVI汽车平台架构。

Qt for Automation

自动化相关领域的库和工具,如 KNX、OPC UA 和 MQTT

Qt for Device Creation

用于快速、简单且完全集成的嵌入式设备应用程序开发的工具。包含在大多数其他增值解决方案中

四、技术预览模块

技术预览模块就是一些还处于开发和测试阶段的模块,一般技术预览模块经过几个版本的发布后会变成正式的模块。下表中是Qt5.14中的技术预览模块。

模块

说明

Qt Lottie Animation

一个QML API,用于以JSON格式渲染图形和动画,由Adobe? After Effects的Bodymovin插件导出

Qt Quick 3D

提供高级 API,用于基于 Qt Quick 创建 3D 内容或 UI

五、弃用的模块

弃用的模块,一般都有了更好的替代品,除非为了兼容旧版本,一般用不到。

模块

描述

Qt OpenGL

OpenGL支持类。已弃用,取而代之的是 Qt GUI 模块中的类。

Qt Quick Controls 1

可重用的基于Qt Quick的UI控件,用于创建经典的桌面风格用户界面。已弃用,取而代之的是Qt Quick Controls 2,后者更好,更易于使用

Qt Script

用于使 Qt 应用程序支持脚本的类。已弃用,替代的是Qt QML模块中的类

Qt Script Tools

使用 Qt 脚本的应用程序的其他组件

Qt XML Patterns

支持 XPath、XQuery、XSLT 和 XML 架构验证

总结一下,本文以Qt 5.14为例介绍了各种不同类型的模块。Qt不同发行版所提供的模块可能也是不同的,比如技术预览模块Qt Lottie Animation在Qt 5.15中变成了正式版的附加模块,而Qt 5.15中也多了增值模块Qt for MCUs。

觉得有用的话,希望大家多多关注评论转发[赞],谢谢!

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...