Qt4 和 Qt5 模块的分类
Qt5 与 Qt4 其中的一个区别是底层架构进行了改变,Qt5 引入了更加详细的模块化的概念,将众多功能细分到几个模块之中,Qt4 则是一种粗略的划分。本文主要对 Qt5 和 Qt4的模块进行一个简单的介绍。
(注:本文引用Qt4.8和Qt5.6两个版本)
一、Qt4.8 (http://doc.qt.io/qt-4.8/modules.html)
1.基础模块:
1)QtCore,提供核心的非 GUI 功能,所有模块都需要这个模块。所有这些类都可以通过<QtCore>头文件引入。。
2)QtGui,提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等。这些类一般由 Qt 用户界面类内部使用,当然也可以用于访问底层的 OpenGL ES 图像 API。Qt Gui 模块提供的是所有图形用户界面程序都需要的通用功能。
3)QtMultimedia,提供视频、音频、收音机以及摄像头等功能。这些类可以通过<QtMultimedia> 引入,而且需要在 pro 文件中添加 QT += multimedia。
4)QtNetwork,提供跨平台的网络功能。这些类可以通过 <QtNetwork> 引入,而且需要在 pro 文件中添加 QT += network。
5)QtOpenGL,提供对 OpenGL 的支持。
6)QtOpenVG,提供对 OpenVG 的支持。
7)QtScript,提供对 Qt Scripts 的支持。
8)QtScriptTools,为 Qt Script 提供的额外组件。
9)QtSql,提供对 SQL 数据库的支持。
10)QtSvg,提供对 SVG 文件的支持。
11)QtWebKit,提供显示和编辑 Web 内容。
12)QtXml,XML 处理。
13)QtXmlPatterns,提供对 XQuery、XPath 等的支持。
14)QtDeclarative,用于编写动画形式的图形用户界面的引擎。
15)Phonon,多媒体框架。
16)Qt3Support,Qt 3 兼容类库。
2.工具模块:
1)QtDesigner,用于扩展 Qt Designer。
2)QtUiTools,用于在自己的引用程序中处理 Qt Designer 生成的 form 文件。
3)QtHelp,联机帮助。
4)QtTest,单元测试。
3.专门供 Windows 平台的模块:
1)QAxContainer,用于访问 ActiveX 控件。
2)QAxServer,用于编写 ActiveX 服务器。
4.专门供 Unix 平台的模块:
1)QtDBus,使用 D-Bus 提供进程间交互。
二、Qt5.6 (http://doc.qt.io/qt-5/qtmodules.html)
Qt5模块分为 Essentials Modules 和 Add-on Modules 两部分。前者是基础模块,在所有平台上都可用;后者是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平台之上可以酌情引入。
1.基础模块:
1)QtCore,提供核心的非 GUI 功能,所有模块都需要这个模块。这个模块的类包括了动画框架、定时器、各个容器类、时间日期类、事件、IO、JSON、插件机制、智能指针、图形(矩形、路径等)、线程、XML 等。所有这些类都可以通过 <QtCore> 头文件引入。
2)QtGui,提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等。这些类一般由 Qt 用户界面类内部使用,当然也可以用于访问底层的 OpenGL ES 图像 API。Qt Gui 模块提供的是所有图形用户界面程序都需要的通用功能。
3)Qt Multimedia、Qt Multimedia Widgets,提供视频、音频、收音机以及摄像头等功能。这些类可以通过 引入,而且需要在 pro 文件中添加 QT += multimedia。
4) Qt Network,提供跨平台的网络功能。这些类可以通过 引入,而且需要在 pro 文件中添加 QT += network。
5) Qt QML,提供供 QML(一种脚本语言,也提供 JavaScript 的交互机制) 使用的 C++ API。这些类可以通过 引入,而且需要在 pro 文件中添加 QT += qml。
6) Qt Quick、Qt Quick Layouts、Qt Quick Dialogs、Qt Quick Controls,允许在 Qt/C++ 程序中嵌入 Qt Quick(一种基于 Qt 的高度动画的用户界面,适合于移动平台开发)。这些类可以通过 引入,而且需要在 pro 文件中添加 QT += quick。
7) Qt SQL,允许使用 SQL 访问数据库。这些类可以通过 引入,而且需要在 pro 文件中添加 QT += sql。
8) Qt Test,提供 Qt 程序的单元测试功能。这些类可以通过 引入,而且需要在 pro 文件中添加 QT += testlib。
2.扩展模块:
1)Active Qt,专门用于windows的使用ActiveX和COM应用;
2)Enginio,提供一个数据库后台,通过它规定的API调用,就可以将应用程序的各种数据存储在后台上,实现即存即得。
3)Qt Android Extras,用于Android开发;
4)Qt Bluetooth,提供硬件蓝牙的访问;
5)Qt Canvas 3D,使用js开发的Qt Quick调用的OpenGL3D绘图模块;
6)Qt Concurrent,多线程的并行计算框架;
7)Qt D-Bus,D-BUS通讯协议接口;
8)Qt Graphical Effects,Qt Quick使用的处理图形效果的模块;
9)Qt Image Formats,支持多种图像格式, TIFF, MNG, TGA, WBMP等;
10)Qt Location,QML中展示地图、导航、位置的模块;
11)Qt Mac Extras,专为MAC平台提供的接口,可以使用OS和IOS操作系统的方法;
12)Qt NFC,用于方位近场通信设备的接口模块;
13)Qt OpenGL,OpenGL模块,已经包含进QtCore;
14)Qt Platform Headers,提供特定平台接口,绑定平台运行时状态的插件的模块;
15)Qt Positioning,提供方位位置,卫星和区域监控的模块;
16)Qt Print Support,打印模块;
17)Qt Quick Extras,提供Qt Quick模块的特殊控制方式;
18)Qt Quick Widgets,提供C++和Qt Quick模块的交互;
19)Qt Script,使用JS引擎的模块;
20)Qt Script Tools,使用Qt Script模块的额外组建模块;
21)Qt Sensors,访问硬件传感器和进行手势识别的模块;
22)Qt Serial Port,虚拟串口通信模块;
23)Qt SVG,SVG文件进行处理的模块;
24)Qt WebChannel,用于与html和js进行无缝交互;
25)Qt WebEngine,QML用于web开发的模块;
26)Qt WebEngine Widgets,C++用于web开发的模块;
27)Qt WebEngine Core,为QML和C++进行web开发提供公共的接口;
28)Qt WebSockets,提供RFC6455通信协议支持;
29)Qt WebView,不需要完整的web浏览器支持,即可展示QML开发的web应用;
30)Qt Windows Extras,提供windows API支持;
31)Qt X11 Extras,提供X11 API支持;
32)Qt XML,利用SAX和DOM进行XML解析的接口;
33)Qt XML Patterns,支持XPath, XQuery, XSLT and XML 的模式验证。
3.GPL和GPLv3等商用协议模块,开源版本不支持(也就是增值模块)
1)Qt for Device Creation,快速、容易、完整的嵌入式开发工具;
2)Qt Charts,利用UI组件展示数据模型,图表模块;
3)Qt Quick Compiler,QML编译器,将QML文件编译成二进制文件,以提高加载速度和代码的安全性;
4)Qt Data Visualization,进行3D数据可视化的开发模块;
5)Qt Purchasing,开发移动平台的商店,购物模块;
6)Qt Virtual Keyboard,虚拟键盘模块;
7)Qt Quick 2D Renderer,支持没有OpenGL模块的QML2D展示模块。
4.技术预览模块
1)Qt 3D,2D、3D实时仿真渲染模块;
2)Qt Serial Bus,串行总线接口,目前只支持Modbus和CAN;
3)Qt Labs Controls,为移动设备和嵌入式方面提供一个轻量级的QML开发接口,为QML开发提供简易样式架构,协同Qt Quick和Qt Quick Layouts模块进行工作。
5.工具模块:
1)Qt Designer,UI设计器;
2)Qt Help,帮助文档;
3)Qt UI Tools,用于处理UI设计器设计的表单。
https://blog.csdn.net/u011822862/article/details/51438049
Qt4 和 Qt5 模块的分类的更多相关文章
- 从Qt4到Qt5的,主要的进化有三(对于QtWidget的精简和优化会很有限)
从Qt4到Qt5的,主要的进化有三:1 语言的进化,原来是基于C++(qtwidget)和XML(.ui),现在添加了QML(QtQuick)+JS(v8)的架构.2 绘图系统的进化,原先基于QPai ...
- node模块的分类
模块的分类 1.核心模块 2.文件模块 3.第三方模块(npm安装的) 模块的引用: 1.路径 2.模块名 模块的流程: 1.创建模块:teacher.js 2.导出模块:exports.add=fu ...
- 在VS2010 中兼容Qt4和Qt5
1,同时安装Qt4和Qt5 Qt_add,然后在 2. 如果之前的项目使用Qt4编写的,如果新添加新的类和ui的话,一定要选择Qt Add_in 1.1.11,不然就无法生成moc文件,随便选择 Ch ...
- Qt4升级Qt5注意问题
Qt4升级Qt5注意问题 Qt4过渡到Qt5的项目一开始就受阻,记录一下遇到的下面的问题 --->编译遇到类似错误: error: QCalendarWidget: No such file o ...
- qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用
原则上,两者是不可以同时存在的,但是如果都安装了,该如何分别使用他们呢? Qt4 Visual Studio Add-in:官网可以下载安装程序,qt-vs-addin-1.1.11-opensour ...
- Qt入门之基础篇(1):Qt4及Qt5的下载与安装
转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...
- Qt5模块简介
原文链接:Qt5 模块简介 无意中看到这篇文章,虽然讲的不是经常用的东西,但是看了这篇文章之后,可以对qt有个大致的了解,能够清晰的知道自己想要什么,应该关注那一部分,学习了,相信以后会又很大 ...
- 【转】qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用
原则上,两者是不可以同时存在的,但是如果都安装了,该如何分别使用他们呢? Qt4 Visual Studio Add-in:官网可以下载安装程序,qt-vs-addin-1.1.11-opensour ...
- Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装
转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...
随机推荐
- 利用JS-SDK微信分享接口调用(后端.NET)
一直都想研究一下JS-SDK微信分享的接口调用,由于最近工作需要,研究了一下,目前只是实现了部分接口的调用:其他接口调用也是类似的: 在开发之前,需要提前准备一个微信公众号,并且域名JSAPI 配置接 ...
- 微信小程序不同机型的兼容布局解决
因为小程序是以微信为平台运行的,可以同时运行在android与ios的设备上,所以不可避免的会遇到布局适配问题,特别是在iphone5上,因为屏幕尺寸小的缘故,也是适配问题最多的机型,下面就简单介绍几 ...
- lintcode 394. Coins in a Line 、leetcode 292. Nim Game 、lintcode 395. Coins in a Line II
变型:如果是最后拿走所有石子那个人输,则f[0] = true 394. Coins in a Line dp[n]表示n个石子,先手的人,是必胜还是必输.拿1个石子,2个石子之后都是必胜,则当前必败 ...
- angular ts处理日期格式
引入DatePipe import {DatePipe} from '@angular/common'; 添加provider @Component({ providers: [DatePipe] } ...
- Qt编写气体安全管理系统16-云端同步
一.前言 云端同步功能是为了后期的拓展做准备的,他的目的就是将本地的数据库中的记录,比如实时采集到的数据以及存储的运行记录等,同步到云端数据库上,默认采用阿里云的mysql数据库,阿里云速度还是挺快的 ...
- 果卿居士-《四种清净明诲》之不淫欲 -------------------------------------------------------------------------------- (转自学佛网:http://www.xuefo.net/nr/article19/186541.html)
“如不断淫”, “阿难,如不断淫,修禅定者,如蒸砂石.欲其成饭.经百千劫.只名热砂.何以故.此非饭本.砂石成故.” 阿难啊,如果这个修行的人,最后不能断除淫欲,包括夫妻之间的淫欲,如果你不能断除这个欲 ...
- LinkedHashMap和hashMap和TreeMap的区别
推荐博客:https://www.jianshu.com/p/8f4f58b4b8ab 区别: LinkedHashMap是继承于HashMap,是基于HashMap和双向链表来实现的. HashMa ...
- 细聊Oracle通过ODBC数据源连接SQL Server数据库
类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,文章结尾处的一些扩展有一定实战意 ...
- 网站证书(SSL域名证书)常见格式使用
主流的Web服务软件通常都基于两种基础密码库:OpenSSL和Java 1.Tomcat.Weblogic.JBoss等系统是使用Java提供的密码库.通过Java的Keytool工具,生成Java ...
- Andrew Ng机器学习课程7
回顾 通过定义训练集S={(x(i),y(i));i=1,2,...,m}与线性决策平面(w,b)之间的function margin γ^和geometric margin γ .好的分类决策平面特 ...