- 作为一个Qt的粉丝,对将于明年发布的Qt5充满了期待。可是想想Qt5将发生的巨大变化,心底又有点不安。Qt5到底会变成什么样呢?
看看近期Qt5的一些大动作:
-
从 QtCore中移除 QSettings以及对QSettings的依赖(创建独立的模块?)
-
从 QtCore中移除 QtConcurrent(创建独立模块?)
-
将 QJSEngine 和 QDeclarativeEngine 放入 QtCore
-
从 QtGui 中分离出 QtPrintSupport,保留pdf生成功能
-
QtCore 添加 zip 文件的读写功能
- ...
Qt5 结构
Qt Essentials | 在所有平台可用 |
Qt Tools | Qt的不可分割的组成部分,在所有桌面平台可用 |
Qt Add-Ons | 可跨平台,也可不跨 |
其他模块和工具 | 第三方? |
Qt5 的基础模块(Qt Essentials)
Qt Core | |
Qt Network | 可能会集成到 Core |
Qt Gui | 除去所有QWidget相关的类以后的部分 |
Qt OpenGL | 可能会被合并到其他模块 |
Qt Quick2 | |
Qt Test | |
Qt Sql | |
V8 JavaScript engine | |
Qt DBus | 由于依赖问题,必须被包含进来 |
Qt WebKit | 提供新的底层C++和QML的接口 |
Qt MultimediaKit | |
来自Qt mobility的一些模块 | 初期可能还不会包含进来 |
Qt5 的核心将是 Qt Quick,qml和javascript将成为一等公民。这些模块中变化最大的当属 Gui 模块了,GUI结构进行了彻底的更新:
-
SceneGraph, 什么东东呢?不太了解。似乎:“Scene Graph”是一种组织场景数据的方法,它把数据放进一个层次结构里。
-
OpenGL, Qt5将依赖OpenGL 2
-
lighthouse(QPA),各个平台下图形系统的移植靠它实现,不过现在好像还没看到Win32插件的影子。
同时 QWidget 相关内容将独立成为QtWidget 模块,与打印相关内容,独立出来成为QtPrintSupport,...
但是,这并不是说这部分被废弃了。之所以不在Qt Essentials内,是因为并不是所有平台都需要它。对于桌面平台来说,QtWidget 和其他模块一样,是一等公民!!
-
We want to send the correct message to the users of QWidget classes: they are 1st class citizens in the desktop environment, but not necessarily available in the embedded or mobile environments
Qt附加组件(Qt Add-Ons)
在Qt5中,尽管 Qt Quick 是Qt的中心,但是Qt5仍将一如既往支持原生C++ Qt,而且不想与现在Qt4开发的代码分裂。Qt4中的一些模块在Qt5中被放入Qt Add-Ons中。
- Qt 5 continues to offer all of the power of native Qt C++, and we don’t want Qt 5 to be disruptive for existing code developed for Qt 4.
QWidget 模块 | 模块成熟级别:完成(Done) |
Xml | |
XmlPatterns | |
Script 和 Scripts Tools | |
ActiveQt | |
Svg | 模块成熟级别:废弃 |
Mobility中的一些模块 | |
Qt Quick components模块 | |
3D | |
graphics effects |
还有些东西没看到哈,比如:
phonon | phonon由KDE社区继续维护,Qt建议使用 QtMultimediaKit |
Qt Multimedia | 从Qt4.8开始,废弃,建议 QtMultimediaKit |
Qt3 Support | 废弃 |
参考
-
http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki/Qt5ProductDefinition
-
http://developer.qt.nokia.com/wiki/Qt_Modules_Maturity_Level