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等集成开发环境的整合支持; |