- 作為一個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