热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt类库模块划分详解

Qt 类库里大量的类根据功能分为各种模块,这些模块又分为以下几大类:Qt基本模块(QtEssentials):提供了Qt在所有平台上的基本功能。Qt附加模块(QtAdd-Ons):



Qt 类库里大量的类根据功能分为各种模块,这些模块又分为以下几大类:


  • Qt 基本模块(Qt Essentials):提供了 Qt 在所有平台上的基本功能。
  • Qt 附加模块(Qt Add-Ons):实现一些特定功能的提供附加价值的模块。
  • 增值模块(Value-AddModules):单独发布的提供额外价值的模块或工具。
  • 技术预览模块(Technology Preview Modules):一些处于开发阶段,但是可以作为技术预览使用的模块。
  • Qt 工具(Qt Tools):帮助应用程序开发的一些工具。

提示:Qt官网的“All Modules”页面可以查看所有这些模块的信息。

Qt基本模块

Qt 基本模块是 Qt 在所有平台上的基本功能,它们在所有的幵发平台和目标平台上都可用,在 Qt 5 所有版本上是源代码和二进制兼容的。这些具体的基本模块见表 1。
 



表 1 Qt 基本模块
模块描述
Qt Core其他模块都用到的核心非图形类
Qt GUI设计 GUI 界面的基础类,包括 OpenGL
Qt Multimedia音频、视频、摄像头和广播功能的类
Qt Multimedia Widgets实现多媒体功能的界面组件类
Qt Network使网络编程更简单和轻便的类
Qt QML用于 QML 和 Javascript 语言的类
Qt Quick用于构建具有定制用户界面的动态应用程序的声明框架
Qt Quick Controls创建桌面样式用户界面,基于 Qt Quick 的用户界面控件
Qt Quick Dialogs用于 Qt Quick 的系统对话框类型
Qt Quick Layouts用于 Qt Quick 2 界面元素的布局项
Qt SQL使用 SQL 用于数据库操作的类
Qt Test用于应用程序和库进行单元测试的类
Qt Widgets用于构建 GUI 界面的 C++ 图形组件类


Qt Core 模块是 Qt 类库的核心,所有其他模块都依赖于此模块,如果使用 qmake 构建项目, 则 Qt Core 模块是自动被加入项目的。

Qt GUI 模块提供了用于开发 GUI 应用程序的必要的类,使用 qmake 构建应用程序时,Qt GUI 模块是自动被加入项目的。如果项目中不使用 GUI 功能,则需要在项目配置文件中加入如下的一行:

QT -= gui

其他的模块一般不会被自动加入到项目,如果需要在项目中使用某个模块,则可以在项目配置中添加此模块。例如,如果需要在项目中使用 Qt Multimedia 和 Qt Multimedia Widgets 模块,需要在项目配置文件中加入如下的语句:

QT += multimedia multimediawidgets

需要在项目中使用 Qt SQL 模块,就在项目配置文件中加入如下的语句:

QT += sql

Qt附加模块

Qt 附加模块可以实现一些特定目的。这些模块可能只在某些开发平台上有,或只能用于某些操作系统,或只是为了向后兼容。用户安装时可以选择性地安装这些附加模块。


表 2 是附加模块列表(未列出一些过时的模块,以及专门用于 QML 或 Qt Quick 的模块)。
 



表 2 Qt附加模块
模块描述
Active Qt用于开发使用 ActiveX 和 COM 的 Windows 应用程序
Qt 3D支持 2D 和 3D 渲染,提供用于开发近实时仿真系统的功能
Qt Android Extras提供 Android 平台相关的 API
Qt Bluetooth提供访问蓝牙硬件的功能
Qt Concurrent提供一些类,无需使用底层的线程控制就可以编写多线程程序
Qt D-Bus使进程间通过 D-Bus 协议通信的一些类
Qt Gamepad使 Qt 应用程序支持游戏手柄硬件的使用
Qt Image Formats 支持附加图片格式的插件,包括 TIFF、MNG、TGA、WBMP
Qt Mac Extras提供 macOS 平台相关的 API
Qt NFC提供访问 NFC (近场通信)硬件的功能
Qt Positioning提供一些类,用于通过 GPS 卫星、WiFi 等定位
Qt Print Support提供一些用于打印控制的类
Qt Purchasing提供一些类,在 Qt 应用程序内实现应用内购买的功能
Qt Sensors提供访问传感器硬件的功能,以识别运动和手势
Qt Serial Bus访问串行工业总线的功能,目前只支持 CAN 和 Modbus 协议
Qt SVG提供显示 SVG 图片文件的类
Qt WebChannd用于实现服务器端(QML 或 C++ 应用程序)与客户端(HTML/Javascript 或 QML 应用程序)之间的 P2P 通信
Qt WebEngine提供类和函数,实现在应用程序中嵌入网页内容
Qt WebSocket提供兼容于 RFC 6455 的 WebSocket 通信,是实现客户端程序与远端主机进行双向通信的基于 Web 的协议
Qt Windows Extras提供 Windows 平台相关的 API
Qt XML该模块不再维护了,应使用 QtCore 中的 QXmlStreamReader 和 QXmlStream Writer Qt XML Patterns 提供对 XPath、XQuery、XSLT 和 XML 等的支持
Qt Charts 用于数据显示的二维图表组件
Qt Data Visualization用于 3D 数据可视化显示的界面组件
Qt Virtual Keyboard实现不同输入法的虚拟键盘框架

增值模块

除了随 Qt 5 发布的上述这些模块,还有一些模块(见表 3)是单独发布的,这些模块只在商业版许可的 Qt 里才有。
 



表 3 Qt的增值模块
特性描述
Qt for Device Creation高效、易用、全集成的嵌入式设备应用程序开发工具,包括很多其他增值特性
Qt Quick Compiler编译.qml 源文件生成二进制应用程序的编译器,提高载入时间和代码的安全性

技术预览模块

技术预览模块就是一些还处于开发和测试阶段的模块,一般技术预览模块经过几个版本的发布后会变成正式的模块。表 4 是 Qt 5.9 中的技术预览模块。
 



表 4 技术预览模块
模块描述
Qt Network Authorization基于 OAuth 协议,为应用程序提供网络账号验证的功能
Qt Speech提供文字转语音(text-to-speech)功能支持
Qt Remote Objects进程间或设备间通信,共享 QObject 的 API

Qt 工具

Qt 工具(见表 5)在所有支持的平台上都可以使用,用于帮助应用程序的开发和设计。
 



表 5 Qt 工具
工具描述
Qt Designer用于扩展 Qt Designer 的类
Qt Help在应用程序中集成在线文档的类,实现类似于 Qt Assistant 的功能
QtUI Tools操作 Qt Designer 生成的窗体的类




推荐阅读
  • 【实践】基于RTThread的智慧路灯案例实验分享
    之前分享了基于LiteOS的智慧农业案例实验分享基于LiteOS的智慧农业案例实验分享,阅读量挺不错,看样子大家都挺喜欢这种实验。那咱们就再来一个类似的实验:基于RT-Thread ... [详细]
  • 在Java程序中使用多线程要比在C或C++中容易得多,这是因为Java编程语言提供了语言级的支持。为什么会排队等待?下面的这个简单的Java程序完成四项不相关的任 ... [详细]
  • 安全3AAuthentication:认证Authorzation:授权Accouting|Audition:审计用户管理用户:UID:0,不一定是root,root的uid非0时 ... [详细]
  • 开发笔记:深度探索!Android之OkHttp网络架构源码解析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了深度探索!Android之OkHttp网络架构源码解析相关的知识,希望对你有一定的参考价值。 ... [详细]
  • UDP协议开发
    UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
  • 配置OracleACFS集群文件系统
    配置OracleACFS集群文件系统               2012-07-1010:18:39标签:asmacfs版权声明:原创作品,谢绝转载!否则将追究法律责任。     ... [详细]
  • 开发环境_VS2013+WDK8.1 驱动开发环境搭建
    本文由编程笔记#小编为大家整理,主要介绍了VS2013+WDK8.1驱动开发环境搭建相关的知识,希望对你有一定的参考价值。WindowsDriverKit是一种完全集成 ... [详细]
  • 下载器,就是一种网络工具,从网络中接收自己想要的数据。下载器是一个网络客户端。它的下载流程无非就是客户端连接服务器端,然后发送资源下载请求 ... [详细]
  • Spring Cloud笔记Spring Cloud Stream消息驱动(十五)
    1.消息驱动概述1.SpringCloudStream是什么SpringCloudStream是一个构建消息驱动微服务的框架。应用程序通过Inpust和Outputs与Spri ... [详细]
  • 日期:2012-4-7来源:GBin1.com在线演示本地下载今天我们介绍一个超棒的创建快速动态互动HTML5可视化图形效果的javascript类库-Envision.j ... [详细]
  • 如何设计一个秒杀系统(各方面都写的很到位)
    1.Overview1.1并发读写秒杀要解决的主要问题是:并发读与并发写。并发读的优化理念是尽量减少用户到服务端来读数据,或者让他 ... [详细]
  • salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
    上一篇Lightning内容描述的是LDS,通过LDS可以很方便的实例化一个对象的数据信息。当我们通过列表展示数据需要编辑时,我们常使用两种方式去处理编辑页面:PopUpWindo ... [详细]
  •  在使用PHP多年之后,我对PHP的优势和劣势已经非常清楚,与后起之秀Golang相比,两者已经不在一个重量级。 PHP更像是70kg级别的选手,脚本语言,极速开发,部署方便,性能 ... [详细]
  • diskmark使用教程
    首先说明一下软件各个参数的意义。1~9测试次数;50MB~4000MB测试规模;C,D,E,F选择测试对象;ALL测试以下所有;第一行代表你硬盘的读写速度。第二行代表你硬盘4K文件 ... [详细]
  • 操作系统基础知识(常用面试题)
    1.进程和线程有什么区别?进程(Process)是系统进行资源分配和调度的基本单位,线程(Thread)是CPU调度和分配 ... [详细]
author-avatar
一切近乎完美
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有