Qt5之于Qt4的发展

一、什么是Qt5

    Qt5是Qt的最新版本,对Qt4做出了重大的革新以满足未来应用程序开发框架的技术需求和发展方向。

    1.全面的模块化架构,结构清晰;

    2.全新的基于OpenGl的图像引擎,全面提升QtQuick的界面性能;

    3.全面支持C++11标准;

    4.全新的支持操作系统的统一框架,对新的操作系统具有更好的兼容性。

 

二、Qt5模块

    Qt5中的所有功能都被划分为两种模块,Qt Esstential模块和Qt add-on模块。

    Qt Essential模块对于所有的平台均一致,构成了Qt5 的基本框架,Qt add-on模块提供了扩展功能和平台特定功能。

    1.Essential模块包括:

        Qt Core ,Qt Qml ,Qt Network ,Qt Quick ,Qt Gui ,Qt Multimedia ,Qt Widgets ,Qt Webkit ,Qt Sql ,Qt Webkit Widgets。

    2.Add-on模块包括:

Qt Charts ,Qt Concurrent ,Qt Print Support ,Qt DBus ,Qt Testlib ,Qt Xml Patterns ,Qt ActiveQt ,Qt Help ,Qt Graphics Effects ,Qt Declarative ,Qt Image Formats ,Qt OpenGL ,Qt Xml ,Qt Svg ,Qt Script & Script Tools。

    3.移除的模块:

    Qt3Support ,Symbian/Maemo ,QWS ,QtOpenVg ,MSVC6和GCC3.x编译器的支持 ,QT_NO_STL选项。

 

三、Qt5的新特性SceneGraph图形渲染引擎

    1.基于预定义节点的树状结构

    最小化状态机的状态数,采用Z排序减少过度绘制。

    2.全面地利用OpenGLES2.0,更高的渲染效率

    嵌入式ARMCortexA8+GPU一般达到60FPS。

    3.支持在单独线程的渲染。

    4.支持客户定制的渲染

    在不同的渲染阶段提供了不同信号。

 

四、Qt5的新特性QtQuick2与QML2

    1.QtQuick2的开发需要平台支持OpenGLES2。

    2.当然依然支持开发不依赖于OpenGLES2的QtQuick1程序。

    3.一个QML2的程序依赖于QtCore,QtGui,QtV8,andQtDeclarative。

    4.注意到widgets已经在QtWidgets模块中,不再是QtGui的一部分。

    5.QML2程序基于一个QQuickView (QtQuick module)类的对象,而不是一个widget。

    6.Canvas画布

    (1)提供了基本的图形绘制的API,可以绘制自定义的任意图形;

    (2)复杂图形尤其是各种曲线的绘制,例如利用Canvas实现示波器等;

    (3)与HTML5的CanvasAPI兼容。

    7.Shaders GLSL着色器

    (1)全面支持OpenGLShadingLanguage(GLSL);

    (2)支持VertexShader 顶点着色器和FragmentShader片段着色器;

    (3)全部计算在GPU上运行,高效的完成复杂的图像处理和特效;

    (4)Particles粒子系统和GraphicEffects图像特效系统的基础;

    (5)全新的QtGraphicEffecfs模块;

    (6)支持方便的多种特效的实现

    Blend,Brightness,Constrast,Colorize,Saturation,Gradients Displace,Dropandinnershadows,Blurs,Glow。

    8.Particles粒子系统

    (1)提供了利用3D技术模拟特定模糊现象的开发库,方便简单的开发多种动态效果;

    (2)支持各种自定义的粒子图像;

    (3)发射轨迹控制;

    (4)每个粒子的速度和加速度控制。

 

五、Qt5的新特性Qt Platform Abstraction

    1.Qt平台抽象层

    将所有的与底层平台相关的操作抽象成一个标准的接口层,,Qt的库只依赖于相关的接口,而与接口的具体实现无关。对不同的平台/操作系统通过插件的方式来实现这些接口层。使Qt本身与底层的平台/操作系统在架构上完全脱离。

    2.提供了对于Window,Mac,X11的QPA插件。

    3.提供了对于嵌入式的eglfs和directfb插件。

    4.提供了对于Android的支持。

    5.提供了对于IOS的支持。

    6.将会提供对于wayland的QPA插件。

    7.便于增加对新的操作系统的支持。

 

六、Qt5的新特性QtMultimedia

    1.Qt multimedia模块提供了对于多媒体的丰富支持。

    2.支持传统的C++Qwidget 开发方式。

    3.在QML2种提供了多种组件。

    4.支持对视频文件的播放,录制。

    5.对音频文件的播放,录制。

    6.支持摄像头。

    7.支持收音机。

    8.支持Qt ForAndroid。

    9.依赖于操作系统提供的多媒体中间件来获得板级的差异化。

 

七、Qt5的新特性Qt3D

    1.Qt3D模块提供了对于3D特性的封装,提供了便捷的API来快速创建,操控,显示3D对象;

    2.Qt3D模块提供了针对QML的开发库,支持QML方式的Qt3D开发;

    3.Qt3D模块提供了针对QtWidget的开发库,支持C++方式的Qt3D开发;

 

八、Qt5的新特性很多重要的改进

    1.QtNetwork,改进了对于IPv6的支持。

    2.将Widget从QtGui模块拿出生成性新的QtWidget模块。

    3.支持C++11。

    4.支持JSON。

    5.Unicode6.2源代码为utf8格式。

    6.QtWebkit升级至Webkit2.2。

    7.支持最新的HTML5特性。

    8.Webkit2在单独线程里运行,更稳定,不会阻塞UI线程  。

你可能感兴趣的:(QT)