说起QT,给我的感觉就是一个C++的编程模式,不会QT就不好说C++道上浪迹过的。有很多博客对QT进行了系统性的梳理,再写一个感觉意义不大,我只是想看看官网上的资料,做一个最新的了解。
QT目前不仅仅支持C++接口,还有QMT(多范式语言)和QT for Python。Python版本也非常好用,但最经典的还是C++版本,C++版本的文档是非常全的,功能也是最新的。所以我这里主要看c++版本。
QT是一套高效完善的界面编程API,虽然是一句话,但这本身也是一件非常了不起的事情。
为了实现这套完善的体系,QT又分了很多模块,我们先来看看这些模块的简单说明。
核心模块
| 模块 | 说明 |
|---|---|
| Qt Core | 核心类,不包含图像相关的封装 |
| Qt GUI | 主要的图像编程API接口模块,包含OpenGL |
| Qt Multimedia | 一些多媒体功能,包含音频,视频,广播和照相机的处理 |
| Qt Multimedia Widgets | 多媒体组件模块 |
| Qt Network | 轻便易用的网络模块 |
| Qt QML | 给QML和JavaScript相关的处理模块 |
| Qt Quick | 提供用户自定义的动态框架 |
| Qt Quick Controls | 轻量化QML类型,位桌面系统,嵌入式和移动设备提供高性能的用户界面 |
| Qt Quick Dialogs | 轻量化的对话框交互模块 |
| Qt Quick Layouts | QT Quick 2的布局样式的用户界面模块 |
| Qt Quick Test | Qt提供的轻量化测试模块 |
| Qt SQL | SQL 集成模块 |
| Qt Test | 单元测试模块, 代码兼容 |
| Qt Widgets | QT用户界面的一些扩展组件 |
如果你是使用的 qmake 来编译你的项目,Qt Core 和 Qt GUI 模块是默认添加好的, 如果只想要添加 Qt Core, 需要添加下面这一行到你的 .pro 文件中:
QT -= gui
在 windows 上,如果你没有用qmake来进行编译,比如你用了CMAKE,你也需要配置对应的链接选项。
附加模块
附加模块是为了一些特定的场合制作的,需要注意的是可能某些编译平台并不支持。
| 模块 | 开发平台 | 目标平台 | 说明 |
|---|---|---|---|
| Active Qt | Windows | Windows | 使用ActiveX和COM的应用程序的类 |
| Qt 3D | All | All | 2维和3维的实时渲染 |
| Qt Android Extras | All | Android | Android 的一些扩展 |
| Qt Bluetooth | All | Android, iOS, Linux, macOS, and UWP (*) | 蓝牙支持 |
| Qt Concurrent | All | All (*) | 对底层线程的封装 |
| Qt D-Bus | All | All (*) | 通过D-Bus协议进行进程间通信 |
| Qt Gamepad | All | Android, iOS, macOS, tvOS (包括远程tvOS), Linux, Windows, and QNX | 游戏硬件的支持 |
| Qt Graphical Effects | All | All | Qt Quick 2的图像模块 |
| Qt Help | All | All (*) | 类似于 QT Assistant 的一个集成文档 |
| Qt Image Formats | All | All | 对不常见的图片插件 TIFF, MNG, TGA, WBMP. |
| Qt Location | All | All | 使用QML再程序中 显示图片,导航,放置内容 |
| Qt Mac Extras | All | macOS | 为 macOS 提供的扩展 |
| Qt NFC | All | Android and Linux (*) | 提供 NFC 硬件支持 |
| Qt OpenGL ( 不推荐) | All | All (*) | OpenGL 支持模块。推荐使用QOpenGL代替 |
| Qt Platform Headers | Qt for Windows, Linux, macOS | Qt for Windows, Linux, macOS, Android (*) | 提供封装平台特定信息的类,这些类与平台插件的给定运行时配置相关联。 |
| Qt Positioning | All | Android, iOS, macOS, Linux, UWP (*). | 定位,卫星和区域监控 |
| Qt Print Support | All | All (*) | 打印硬件 |
| Qt Purchasing | All | Android, iOS, and macOS. | 提供终端购买接口 |
| Qt Quick Controls 1 ( 不推荐) | All | All (*) | 基于可重用的Qt Quick的UI控件创建经典的桌面样式用户界面。不推荐使用,因为Qt Quick Controls 2更易于使用。 |
| Qt Quick Extras | All | All (*) | 基于 Qt Quick 提供的一组可重用的控件集合 |
| Qt Quick Timeline | All | All (*) | 启用基于关键帧的动画和参数化 |
| Qt Quick Widgets | All | All (*) | 提供一些基于Qt Quick用户界面的组件 |
| Qt Remote Objects | All | All | 提供一个简易的进程或者设备之间的共享接口 |
| Qt Script ( 不推荐) | All | All | Qt 的脚本支持, 推荐使用 Qt QML 模块中的 QJS* 模块替代 |
| Qt SCXML | All | All | 可以通过 SCXML 文件的配置创建状态机并嵌入到程序中 |
| Qt Script Tools ( 不推荐) | All | All (*) | 基于 Qt Script 的扩展组件 |
| Qt Sensors | All | Android, Qt for iOS, UWP, Mer, and QNX. | 传感器硬件和运动手势识别 |
| Qt Serial Bus | All | Windows, Linux, Boot to Qt targets, and QNX. | 对串行工业总线接口的访问。当前,该模块支持CAN总线和Modbus协议 |
| Qt Serial Port | All | Windows, Linux, macOS, and QNX. | 访问硬件和虚拟串行端口 |
| Qt Speech | All | All | except QNX. |
| Qt SVG | All | All | SVG文件支持,目前集成的SVG1.2本版的协议 |
| Qt UI Tools | All | All (*) | 处理运行的时候根据Qt Designer 产生的表单动态创建的组件 |
| Qt WebChannel | All | All | 将HTML转换为QObject或者QML无缝嵌入到HTML/JavaScript客户端 |
| Qt WebEngine | All | Windows, Linux, and macOS. | 通过chromium浏览器项目嵌入Web程序 |
| Qt WebSockets | All | All | 提供符合RFC 6455的WebSocket通信 |
| Qt WebView | All | Platforms with a native web engine. | 在QML程序中显示Web内容,而无需完整的Web浏览器 |
| Qt Windows Extras | All | Windows平台特定的API | |
| Qt X11 Extras | All | Linux/X11 | X11平台特定的API |
| Qt XML | All | All (*) | 通过 C++ 实现的 SAX 和 DOM |
| Qt XML Patterns (不推荐) | All | All | 支持XPath,XQuery,XSLT和XML模式验证 |
| Qt Wayland Compositor | Linux | Linux and Boot to Qt targets. | 开发Wayland合成器的框架 |
一些再商业许可或者再GNU General Public License v3许可下的附加模块
| 模块 | 开发平台 | 目标平台 | 说明 |
|---|---|---|---|
| Qt Charts | All | All | UI组件,包含显示视觉上新宜的图表,该图表由静态或动态数据模型驱动。 |
| Qt Data Visualization | All | All | 用于创建惊人的3D数据可视化的组件 |
| Qt Network Authorization | All | All | 为基于OAuth的在线服务授权提供支持 |
| Qt Virtual Keyboard | All | Linux,Windows桌面系统和Boot to Qt终端 | 用于实现不同输入法的框架以及QML虚拟键盘。支持本地化的键盘布局和自定义视觉主题。 |
| Qt for WebAssembly | All | 具有WebAssembly支持的Web浏览器 | 使用WebAssembly为Web浏览器编译Qt应用程序的平台目标。 |
| Qt Quick WebGL | All | 启用WebGL的网络浏览器 | 提供一个平台插件,该插件允许使用WebGL™通过网络流式传输Qt Quick用户界面。 |
高级模块
| 模块 | 说明 |
|---|---|
| Qt Automotive Suite | 用于开发车载信息娱乐(IVI)系统的软件组件和工具的集合。建立在Qt for Device Creation产品之上,并符合GENIVI汽车平台架构 |
| Qt for Automation | 用于自动化相关领域的库和工具,例如KNX,OPC UA和MQTT |
| Qt for Device Creation | 用于快速,轻松且完全集成的嵌入式设备应用程序开发的工具。包含在大多数其他增值解决方案中 |
技术预览功能
| 模块 | 说明 |
|---|---|
| Qt Lottie Animation | QML API,用于以JSON格式呈现图形和动画,由Bodymovin插件针对Adobe®After Effects导出 |
| Qt Quick 3D | Qt Quick 3D提供了用于基于Qt Quick创建3D内容或UI的高级API |
翻译:
来源:CSDN
作者:HockerF
链接:https://blog.csdn.net/u012939880/article/details/103896467