从Qt4到Qt5的,主要的进化有三:
1 语言的进化,原来是基于C++(qtwidget)和XML(.ui),现在添加了QML(QtQuick)+JS(v8)的架构。
2 绘图系统的进化,原先基于QPainter的绘图系统无法充分发挥OpenGL的威力,于是添加了SceneGraph绘图框架,专供QtQuick使用。
3 放弃以前基于显示服务的QWS框架,用基于操作系统和通用API的QPA代替,增强移植能力。
所以我猜测Qt5.5以后的版本会干的事情:
1、进一步完善QML的语法,比如在未来支持一些和ECMAScript6相关的特性。
2、进一步优化QtQuick和SceneGraph的运行速度,完善对最新绘图API(OpenGL ES 3.1及以上)的支持,并且在已经稳定的SceneGraph框架基础上,开发Qt3D 2.0之类的框架来发掘潜力。
3、进一步完善QPA,尤其是对于Android和IOS的支持,同时增加一些模块来支持移动平台的特性。
4、因为要兼容Qt4并保持Qt5的各版本的二进制兼容,而且最近几年C++会有较大改动(C++11,C++14,C++17),所以对于QtWidget的精简和优化会很有限。
1 语言的进化,原来是基于C++(qtwidget)和XML(.ui),现在添加了QML(QtQuick)+JS(v8)的架构。
2 绘图系统的进化,原先基于QPainter的绘图系统无法充分发挥OpenGL的威力,于是添加了SceneGraph绘图框架,专供QtQuick使用。
3 放弃以前基于显示服务的QWS框架,用基于操作系统和通用API的QPA代替,增强移植能力。
所以我猜测Qt5.5以后的版本会干的事情:
1、进一步完善QML的语法,比如在未来支持一些和ECMAScript6相关的特性。
2、进一步优化QtQuick和SceneGraph的运行速度,完善对最新绘图API(OpenGL ES 3.1及以上)的支持,并且在已经稳定的SceneGraph框架基础上,开发Qt3D 2.0之类的框架来发掘潜力。
3、进一步完善QPA,尤其是对于Android和IOS的支持,同时增加一些模块来支持移动平台的特性。
4、因为要兼容Qt4并保持Qt5的各版本的二进制兼容,而且最近几年C++会有较大改动(C++11,C++14,C++17),所以对于QtWidget的精简和优化会很有限。
作者:刘铮
链接:http://www.zhihu.com/question/27035741/answer/35378618
来源:知乎
著作权归作者所有,转载请联系作者获得授权。