QT基础之【模块】
摘要:
1.本文介绍了QT5.12.9的模块,主要核心内容来源于帮助文档,少量整理网络中的资料
2.分析查看安装中径中的全部模块
写在前面
-
端正学习思路
-
不要试图一口吃个胖子,一锹挖口井,要懂得循序渐进、螺旋式上升
-
心急吃不了热豆腐,即要有耐心,也要保持专注
-
Linux内核源码几百M,几十万个文件,全能看完吗?全能搞懂吗?有那些时间吗?
-
重要的是掌握快速学习的方法,抓住重点,善于利用工具,以最短的时间解决重重要的
-
题。然后再回顾->补全->迭代->积累->持续提升
版本信息
- 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等集成开发环境的整合支持; |