QT基础之【模块】

QT基础之【模块】

摘要:

1.本文介绍了QT5.12.9的模块,主要核心内容来源于帮助文档,少量整理网络中的资料

2.分析查看安装中径中的全部模块

写在前面

  1. 端正学习思路

  2. 不要试图一口吃个胖子,一锹挖口井,要懂得循序渐进、螺旋式上升

  3. 心急吃不了热豆腐,即要有耐心,也要保持专注

  4. Linux内核源码几百M,几十万个文件,全能看完吗?全能搞懂吗?有那些时间吗?

  5. 重要的是掌握快速学习的方法,抓住重点,善于利用工具,以最短的时间解决重重要的

  6. 题。然后再回顾->补全->迭代->积累->持续提升

版本信息

  • Qt 5.12
  • All Modules
  • Qt 5.12.9 Reference Documentation

内容

  • QT基本模块
  • QT附加模块
  • 增值模块
  • 技术预览模块
  • QT工具

全部模块

QT基本模块

Qt Essentials定义了Qt在所有平台上的基础。它们可用于所有受支持的开发平台和已测试的目标平台。除了测试模块将保持源代码兼容之外,这些模块将在整个Qt 5中保持源代码和二进制文件兼容。

基本模块对于大多数Qt应用程序都是通用且有用的。用于特殊目的的模块被视为附加模块,即使它在所有受支持的平台上可用。

下表列出了Qt的基本模块:

模块 描述
Qt Core 其他模块使用的核心非图形类。
Qt GUI 图形用户界面(GUI)组件的基类。包括OpenGL。
Qt Multimedia 音频,视频,广播和相机功能类。
Qt Multimedia Widgets 实现多媒体功能的基于Widgets的类。
Qt Network 易于使用和移植的网络编程类
Qt QML 用于QML和JavaScript语言的类。
Qt Quick 一个声明性框架,用于构建具有自定义用户界面的高度动态应用程序。
Qt Quick Controls 提供轻量级QML类型,用于为桌面、嵌入式和移动设备创建高性能用户界面。这些类型采用简单的样式体系结构,非常高效。
Qt Quick Dialogs 用于在Qt Quick应用程序中创建和交互系统对话框的类型。
Qt Quick Layouts 布局是用于在用户界面中安排基于Qt Quick 2的项目的项。
Qt Quick Test QML应用程序的单元测试框架,其中测试用例被编写为JavaScript函数。注意:二进制兼容性保证不适用于Qt快速测试。但是,它将保持源代码兼容。
Qt SQL 用于使用SQL进行数据库集成的类。
Qt Test 类的单元测试Qt应用程序和库。注意:二进制兼容性保证不适用于Qt Test。但是,它将保持源代码兼容。
Qt Widgets 扩展Qt GUI类与C++ widgets。

如果你使用qmake来构建你的项目,Qt Core和Qt GUI模块默认包含在内。要只链接到Qt Core,请在.pro文件中添加以下行:

cpp 复制代码
QT -= gui

在Windows上,如果您不使用qmake或其他构建工具,如CMake,您还需要链接到qtmain库。

QT附加模块

Qt附加模块为特定目的带来附加价值。这些模块可能只在某些开发平台上可用。许多附加模块要么功能完备,并且是为了向后兼容而存在的,要么只适用于某些平台。每个附加模块分别指定其兼容性承诺。

Qt安装程序包括下载附加组件的选项。欲了解更多信息,请访问入门Qt页面。

下表列出了Qt附加模块:

模块 开发平台 目标平台 描述
Active Qt Windows Windows 类用于使用ActiveX和COM的应用程序
--- --- --- ---
Qt 3D All All 支持2D和3D渲染的近实时仿真系统的功能。
Qt Android Extras All Android 为Android提供特定于平台的api。
Qt Bluetooth All Android, iOS, Linux, macOS, and WinRT 提供对蓝牙硬件的访问。
Qt Canvas 3D (Deprecated)弃用 All All 允许使用JavaScript从Qt快速应用程序调用类似opengl的3D绘图。
Qt Concurrent All All 用于编写多线程程序而不使用低级线程原语的类。
Qt D-Bus All All 通过D-Bus协议实现进程间通信的类。
Qt Gamepad All Android, iOS, macOS, tvOS (including the tvOS remote), Linux, Windows 使Qt应用程序支持使用游戏手柄硬件。
Qt Graphical Effects All All 图形效果与Qt Quick2。
Qt Help All All br/>用于将文档集成到应用程序中的类,类似于Qt Assistant。
Qt Image Formats All All 附加图像格式的插件:TIFF, MNG, TGA, WBMP。
Qt Location All All 在QML应用程序中显示地图、导航和位置内容。
Qt Mac Extras All macOS 为macOS提供特定于平台的api。
Qt NFC All Android and Linux 提供对近场通信(NFC)硬件的访问。
Qt OpenGL (Deprecated) (弃用) All All OpenGL支持类。已弃用,支持Qt GUI模块中的QOpenGL*类。
Qt Platform Headers Qt for Windows, Linux, macOS Qt for Windows, Linux, macOS, Android 提供封装平台特定信息的类,绑定到平台插件的给定运行时配置。
Qt Positioning All Android, iOS, macOS, Linux, WinRT. 提供对位置、卫星和区域监控类的访问。
Qt Print Support All All 类,使更容易和更可移植。打印
Qt Purchasing All Android, iOS, and macOS. 允许在Qt应用程序中购买应用。
Qt Quick Controls 1 (Deprecated) All All 可重用的Qt快速基于UI控件,以创建经典的桌面风格的用户界面。已弃用,支持Qt Quick Controls 2,它更好,更容易使用。
Qt Quick Extras All All 提供了一组专门的控件,可用于在Qt Quick中构建接口。
Qt Quick Widgets All All 提供一个C++ Widget类,用于显示Qt Quick用户界面。
Qt Remote Objects All 提供了一个易于使用的机制来共享QObject的API (Properties/Signals/Slots)在进程或设备之间。
Qt Script (Deprecated) All All 用于使Qt应用程序可编写脚本的类。不支持Qt QML模块中的QJS*类。
Qt SCXML All All 提供用于从SCXML文件创建状态机并将其嵌入应用程序的类和工具。
Qt Script Tools (Deprecated) All All 使用Qt Script的应用程序的附加组件。
Qt Sensors All Android, Qt for iOS, WinRT and Mer. 提供对传感器硬件和动作手势识别的访问。
Qt Serial Bus All Windows, Linux and Boot to Qt targets. 提供访问串行工业总线接口。目前该模块支持CAN总线和Modbus协议。
Qt Serial Port All Windows, Linux, and macOS. 提供对硬件和虚拟串口的访问。
Qt Speech All All 提供对可访问性特性的支持,例如文本到语音的转换。
Qt SVG All All 用于显示SVG文件内容的类。支持SVG 1.2 Tiny标准的子集。
Qt UI Tools All All 类加载QWidget基于表单创建在Qt设计器动态,在运行时。
Qt WebChannel All All 提供从HTML客户端访问QObject或QML对象,实现Qt应用程序与HTML/JavaScript客户端的无缝集成。
Qt WebEngine All Windows, Linux, and macOS. 类和函数嵌入web内容的应用程序使用Chromium browser project。
Qt WebSockets All All 提供WebSocket通信符合RFC 6455。
Qt WebView All Platforms with a native web engine. 通过使用平台原生api在QML应用程序中显示web内容,而无需包含完整的web浏览器堆栈。
Qt Windows Extras All Windows 为Windows提供特定于平台的api。
Qt X11 Extras All Linux/X11 为X11提供特定于平台的api。
Qt XML All All SAX和DOM的c++实现。注意:该模块不需要使用QXmlStreamReader和QXmlStreamWriter。它们已经是Qt Core的一部分。
Qt XML Patterns All All 支持XPath、XQuery、XSLT和XML模式验证。
Qt Wayland Compositor Linux Linux and Boot to Qt targets. 提供一个框架来开发Wayland合成器。
Add-ons available under Commercial Licenses, or GNU General Public License v3
Qt Charts All All UI组件用于显示视觉上令人愉悦的图表,由静态或动态数据模型驱动。
Qt Data Visualization All All UI组件用于创建令人惊叹的3D数据可视化。
Qt Network Authorization All All 支持基于oauth的在线服务授权。
Qt Virtual Keyboard All Linux and Windows desktop, and Boot to Qt targets. 实现不同输入法的框架以及QML虚拟键盘。支持本地化键盘布局和自定义视觉主题。
Qt Quick WebGL All WebGL-enabled web browsers 提供一个平台插件,允许使用WebGL™在网络上流式传输Qt Quick用户界面。

增值模块

除了作为Qt 5一部分发布的模块之外,以下模块和工具建立在Qt库之上,以提供额外的价值。它们有自己的发布时间表,并在商业许可下可用。

特性 描述
Qt Automotive Suite 用于开发车载信息娱乐(IVI)系统的软件组件和工具集合。建立在Qt设备创建提供和符合GENIVI汽车平台架构。
Qt for Automation 自动化相关领域的库和工具,如KNX、OPC UA和MQTT。
Qt for Device Creation 用于快速,简单和完全集成的嵌入式设备应用程序开发的工具。包含在大多数其他增值解决方案中。

技术预览模块

以下功能仍在开发中,但可以作为技术预览版使用。

特性 描述
Qt for WebAssembly (Technology Preview) 一个使用WebAssembly为web浏览器编译Qt应用程序的平台。

QT工具

Qt Tools可以在所有支持的开发平台上运行,方便了应用程序的开发和设计。

下表列出了Qt工具:

工具 描述
Qt Designer 类扩展Qt Designer。

补充

模块路径

观察安装路径,如下:

C:\Qt\Qt5.12.9\5.12.9\mingw73_64\include

共有75个文件夹,这里应该是QT5.12.9的全部模块。

这75个模块,包含了基本模块,附加模块、增值模块、技术预览模块、QT工具等。

输出如下表所示:

序号 模块名称
1 ActiveQt
2 Qt3DAnimation
3 Qt3DCore
4 Qt3DExtras
5 Qt3DInput
6 Qt3DLogic
7 Qt3DQuick
8 Qt3DQuickAnimation
9 Qt3DQuickExtras
10 Qt3DQuickInput
11 Qt3DQuickRender
12 Qt3DQuickScene2D
13 Qt3DRender
14 QtAccessibilitySupport
15 QtANGLE
16 QtBluetooth
17 QtCharts
18 QtConcurrent
19 QtCore
20 QtDBus
21 QtDesigner
22 QtDesignerComponents
23 QtDeviceDiscoverySupport
24 QtEdidSupport
25 QtEglSupport
26 QtEventDispatcherSupport
27 QtFbSupport
28 QtFontDatabaseSupport
29 QtGamepad
30 QtGui
31 QtHelp
32 QtLocation
33 QtMultimedia
34 QtMultimediaQuick
35 QtMultimediaWidgets
36 QtNetwork
37 QtNfc
38 QtOpenGL
39 QtOpenGLExtensions
40 QtPacketProtocol
41 QtPlatformCompositorSupport
42 QtPlatformHeaders
43 QtPositioning
44 QtPositioningQuick
45 QtPrintSupport
46 QtQml
47 QtQmlDebug
48 QtQuick
49 QtQuickControls2
50 QtQuickParticles
51 QtQuickShapes
52 QtQuickTemplates2
53 QtQuickTest
54 QtQuickWidgets
55 QtRemoteObjects
56 QtRepParser
57 QtScxml
58 QtSensors
59 QtSerialBus
60 QtSerialPort
61 QtSql
62 QtSvg
63 QtTest
64 QtTextToSpeech
65 QtThemeSupport
66 QtUiPlugin
67 QtUiTools
68 QtVulkanSupport
69 QtWebChannel
70 QtWebSockets
71 QtWidgets
72 QtWindowsUIAutomationSupport
73 QtWinExtras
74 QtXml
75 QtXmlPatterns

网络资料简要描述

序号 名称 描述
1 Qt Core 提供了基本的非GUI功能,包括字符串处理、文件和目录操作、事件处理、多线程支持、定时器等;
2 Qt GUI 用于创建丰富的图形用户界面,提供了窗口、布局、绘图、事件处理、输入处理等基本的图形界面功能;
3 Qt Widgets 提供了一套丰富的用户界面控件,如按钮、文本框、列表框、表格、菜单等,可以用于构建传统的桌面应用程序;
4 Qt Quick 提供了一种声明性的语言(QML)和相应的C++ API,用于创建现代化的用户界面,支持动画、效果、多点触摸等;
5 Qt Quick Controls 2 提供了基于Qt Quick的自定义控件;
6 Qt SQL 提供了数据库访问的API,支持主流的关系型数据库,如MySQL、SQLite、PostgreSQL等;
7 Qt Multimedia 用于处理多媒体内容,包括音频、视频的播放和录制,支持多种格式和编解码器;
8 Qt WebEngine 基于Chromium的Web引擎,用于在应用程序中嵌入Web内容,支持HTML5、CSS、JavaScript等;
9 Qt WebSockets 提供了实现WebSocket协议的类,Qt有个专门的模块包qtwebsockets,实现websockets功能;
10 Qt XML 提供了XML解析和生成的功能,用于处理和操作XML格式的数据;
11 Qt Chart 提供了图表显示能力,例如饼图、柱状图、线图等;
12 Qt Sensors 提供了访问移动设备传感器的能力;
13 Qt SerialPort 提供了串口通信的类;
14 Qt Bluetooth 提供了蓝牙通信的功能,可以在应用程序中实现蓝牙设备的连接和数据交互;
15 Qt QML QML(Qt Meta-Object Language)是一种基于声明性语法的编程语言,用于构建跨平台的用户界面。它是Qt框架的一部分,用于开发富有交互性和动态性的应用程序界面;
16 Qt Concurrent 提供了一套用于并行编程的工具和类。它简化了多线程和并行任务的处理,使开发者能够更轻松地编写并行代码;
17 QT OpenGL 提供了在应用程序中使用OpenGL和OpenGL ES进行3D图形渲染的功能。它允许开发者在Qt应用程序中创建和显示OpenGL场景,以及与图形进行交互;
18 QT Test 提供了单元测试框架和模拟鼠标和键盘事件的功能。它可以帮助开发者编写和执行单元测试,以确保代码的正确性和稳定性。此外,Qt Test还提供了与Visual Studio和KDevelop等集成开发环境的整合支持;
相关推荐
番茄灭世神2 天前
Qt学习笔记第71到80讲
c++·上位机·qt5
江上清风山间明月9 天前
Flutter编译Module was compiled with an incompatible version of Kotlin错误解决
android·flutter·kotlin·version·module·incompatible·compiled
一勺汤11 天前
YOLO11改进-模块-引入多尺度差异融合模块MDFM
人工智能·深度学习·yolo·目标检测·模块·改进·yolov11
思忖小下22 天前
Python基础学习-13模块的介绍
python·模块
码农飞飞22 天前
通过包和模块来组织Rust项目
rust·模块·项目··工作空间·可见性
沥川同学1 个月前
跨平台应用开发框架(1)----Qt(组件篇)
c++·qt·udp·线程·tcp·qt5·qt6.3
valkyrja1101 个月前
aws 小白入门,VPC 子网、路由表、互联网网关
aws·入门·vpc·路由表·子网·互联网网关
Amd7941 个月前
Nuxt.js 应用中的 webpackConfigs 事件钩子
webpack·配置·模块·nuxt.js·插件·输出·钩子
琪露诺大湿1 个月前
JavaEE-多线程初阶(5)
java·开发语言·jvm·java-ee·idea·多线程·基础
GOTXX1 个月前
【MySQL】MySQL数据库入门:构建你的数据基石
linux·数据库·mysql·开发工具·基础