快捷搜索:  汽车  科技

qt类库使用方法:从零开始学Qt - 12

qt类库使用方法:从零开始学Qt - 12下面以Qt 5.14版本为例,对各种类型的模块分别进行介绍。大概了解一下Qt提供的模块的功能,能够在程序开发时做到心中有数,知道Qt是否提供了相关的功能以及到哪个模块去寻找。(3)增值模块(Value-Add Modules):单独发布的提供额外价值的模块或工具;(4)技术预览模块(Technology Preview Modules):一些处于开发阶段,但是可以作为技术预览使用的模块;(5)过时的模块(Deprecated Modules):是指抛弃的旧模块,除非为了兼容旧版本,一般用不到。

qt类库使用方法:从零开始学Qt - 12(1)

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 .jpg

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。

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

猜您喜欢: