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 LayoutsQt Quick DialogsQt 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 模块的分类的更多相关文章

  1. 从Qt4到Qt5的,主要的进化有三(对于QtWidget的精简和优化会很有限)

    从Qt4到Qt5的,主要的进化有三:1 语言的进化,原来是基于C++(qtwidget)和XML(.ui),现在添加了QML(QtQuick)+JS(v8)的架构.2 绘图系统的进化,原先基于QPai ...

  2. node模块的分类

    模块的分类 1.核心模块 2.文件模块 3.第三方模块(npm安装的) 模块的引用: 1.路径 2.模块名 模块的流程: 1.创建模块:teacher.js 2.导出模块:exports.add=fu ...

  3. 在VS2010 中兼容Qt4和Qt5

    1,同时安装Qt4和Qt5 Qt_add,然后在 2. 如果之前的项目使用Qt4编写的,如果新添加新的类和ui的话,一定要选择Qt Add_in 1.1.11,不然就无法生成moc文件,随便选择 Ch ...

  4. Qt4升级Qt5注意问题

    Qt4升级Qt5注意问题 Qt4过渡到Qt5的项目一开始就受阻,记录一下遇到的下面的问题 --->编译遇到类似错误: error: QCalendarWidget: No such file o ...

  5. qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用

    原则上,两者是不可以同时存在的,但是如果都安装了,该如何分别使用他们呢? Qt4 Visual Studio Add-in:官网可以下载安装程序,qt-vs-addin-1.1.11-opensour ...

  6. Qt入门之基础篇(1):Qt4及Qt5的下载与安装

    转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...

  7. Qt5模块简介

        原文链接:Qt5 模块简介 无意中看到这篇文章,虽然讲的不是经常用的东西,但是看了这篇文章之后,可以对qt有个大致的了解,能够清晰的知道自己想要什么,应该关注那一部分,学习了,相信以后会又很大 ...

  8. 【转】qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用

    原则上,两者是不可以同时存在的,但是如果都安装了,该如何分别使用他们呢? Qt4 Visual Studio Add-in:官网可以下载安装程序,qt-vs-addin-1.1.11-opensour ...

  9. Qt入门之基础篇 ( 一 ) :Qt4及Qt5的下载与安装

    转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...

随机推荐

  1. MGI数据库挖掘 | MGI-Mouse Genome Informatics | InWeb database

    做生物信息,遗传发育,分析数据的时候总是要narrow down分析范围,高通量数据尤其是基因表达,在庞大的confounder面前,缩小分析范围是必须的,否则你会一直在混沌中游荡. 看一篇文章:20 ...

  2. .net Core 中DateTime在Linux Docker中与Windows时间不一致

    最近写了一个.net core项目,部署到CentOS并在docker上运行的时候,发现DateTime.Now获取的时间与Windows不一致(定时执行的任务,晚了8个小时),在Windows中可以 ...

  3. wrod: 突然无法输入汉字

    “文件”-“选项”-“高级”-“去掉 输入法控制处于活动状态复选框”.

  4. [原][osg][OSGEARTH]OE的关闭打开自动计算裁剪面被OE的海洋ocean影响

    在osgEarthUtil 下 Ocean.cpp 的  traverse函数中: // we don't want the ocean participating in the N/F calcul ...

  5. ISO/IEC 9899:2011 条款6.7.7——类型名

    6.7.7 类型名 语法 1.type-name: specifier-qualifier-list    abstract-declaratoropt abstract-declarator: po ...

  6. pytorch对模型参数初始化

    1.使用apply() 举例说明: Encoder :设计的编码其模型 weights_init(): 用来初始化模型 model.apply():实现初始化 # coding:utf- from t ...

  7. 编译Flink 1.9.0

    闲来无事,编个Flink 1.9 玩玩 1.下载flink.flink-shaded 源码.解压 flink flink-shaded 7.0 [venn@venn release]$ ll tota ...

  8. Vue学习笔记十:过滤器

    目录 公共过滤器的写法 简易过滤器+带参数过滤器+多过滤器 私有过滤器 公共过滤器的写法 过滤器的写法还是很简单的 ,如下 <p>{{ msg | filtermsg }}</p&g ...

  9. LODOP插件的IE浏览器的安全设置

    LodopFuncs.js里的判断默认是混合部署,IE等支持np插件的浏览器会走lodop插件方式,但是IE的安全设置可能会阻挡lodop插件,可点击允许或修改IE浏览器的安全设置让Lodop每次都能 ...

  10. 【VS开发】MFC修改Opencv namedWindow的风格

    当在MFC中应用opencv的窗口来显示图片.希望namedWindow创建的窗口能根据需要改变风格: //by dongchunxiao cv::namedWindow("windows1 ...