Qt5 结构及模块组成?
- 作为一个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://blog.sina.com.cn/s/blog_671732440100y6pd.html