## 1.7 Qt 的最新進展
### 1.7.1 增加協議
諾基亞宣布,從 Qt 4.5 版本起,其用于桌面和嵌入式平臺的 Qt 跨平臺用戶界面(UI) 及應用程序框架將在開源 LGPL 2.1 版授權下提供。此前,Qt 一直是在通用公共授權(GPL)下提供給開源社區的。另外,現已可以通過新的網站名稱 www.qtsoftware.com 來了解 Qt 。
向 LGPL 的轉移將為開源和商業開發人員提供比 GPL 更多的授權許可證,從而為開發 人員提高了靈活性。此外,Qt 源代碼庫將更加開放,鼓勵更多來自桌面和嵌入式系統的開發人員社區的貢獻。隨著這些變化,開發人員將能夠積極推動 Qt 框架的演進。
Qt 4.5 同時也可在商業授權條款下使用,Qt 之前版本的授權則保持不變,也就是說, 比如你要使用 Qt4.4.3 開源版的話,就需要遵守 GPL 而不是 LGPL 協議。而且,Qt 的 服務將擴展,以確保所有 Qt 開發專案,無論選擇何種授權,都能獲得同等支持。這一舉措的效果如何呢,請看下面的來自業界的回應:
“Qt 在 LGPL 條款下的使用,讓運用基于 Qt 應用程序頂端的 KDE 組件創建應用程 序的授權合理化。“ KDE e.V. 董事會成員 Sebastian Kügler 說,“這一更多權限的授 權為 Qt 和 KDE 技術的推廣再次降低了門檻。KDE 團隊歡迎開放開發進程,并期待以此進 一步促進 KDE 和 Qt Software 部門的協作。"
“結合諾基亞獨立于操作系統的應用程序框架 Qt 和飛思卡爾的可實施軟件,為 OEM和應用程序開發人員在挑選飛思卡爾芯片時提供了特有的自由度,從而允許開發人員為其應用程序開發和維護單一的代碼庫。 “飛思卡爾解決方案及可實施技術副總 裁 Raja Tabet 說, “LGPL 模式是一個出色的和時效性的授權選擇,這將加速結合了飛思卡爾和 Qt 的平臺的推廣與開發。”
“Qt 被廣泛應用于 Kubuntu 和 KDE 應用程序中,Canonical 很高興看到其在授權模 式上的這一突破,” Ubuntu 項目創始人 Mark Shuttleworth 說,“Qt 新的授權條款將幫 助我們為用戶提供空前‘誘人’的應用程序。諾基亞對跨平臺 Qt 庫和 Linux 平臺的一貫 投入,是免費軟件桌面和移動設備堆棧創新的主要動力。 ”
“我們歡迎諾基亞簡化 Qt 授權的舉措”,Linden 實驗室平臺與技術開發部副總裁 Joe Miller 說,“我們發現 Qt 是耐人尋味且極具創新的技術,無論授權方式如何,這個新的授權方式已經使得我們在追求將 QtWebkit 集成到 Second Life 時所作的決策變得更為簡單。”
從中我們可以看出,諾基亞的這一舉措是有力的,得到了來自世界各地用戶的普遍歡 迎。尤為重要的是,它的推出為 Qt 進一步的大規模商業應用掃清了障礙。
如果想要了解更多的發布信息,可以訪問: http://www.qtsoftware.com/about-us- cn/licensing 。
### 1.7.2 開放源代碼庫
諾基亞宣布,從 2009 年 5 月起,Qt 源代碼庫面向公眾開放,Qt 開發人員可通過為 Qt 以及與 Qt 相關的項目貢獻代碼、翻譯、示例以及其他內容,協助引導和塑造 Qt 未來的發 展。為了便于這些內容的管理,Qt Software 啟用了基于 Git 和 Gitorious 開源項目的 Web 源代碼管理系統,網址為:http://qt.gitorious.org 。
在推出開放式 Qt 代碼庫的同時,Qt Software 在 qtsoftware.com 發布了其產品規劃(Roadmap)。其中概述了研發項目中的最新功能,展現了現階段對 Qt 未來發展方向的觀 點,以期鼓勵社區提供反饋和貢獻代碼,共創 Qt 的未來。
該消息以及關于貢獻模式和產品規劃的詳細內容現在發布在官方中文網站。 想了解 更多, 請參考以下鏈接:
全部的消息內容:http://www.qtsoftware.com/about-us-cn/news/qt-contribution- model-announced
貢獻模式:http://www.qtsoftware.com/resources-cn/the-qt-contribution-model 產品規劃:http://www.qtsoftware.com/resources-cn/qt-roadmap
### 1.7.3 確定 Qt 的發展方向
諾基亞 QtSoftware 首席技術官 Benoit Schillings 稱 Qt4.5 為應用程序開發樹立了標 桿。他還表示:“通過 Qt 性能方面的改進、QtCreator 的誕生和 Qt 軟件開發工具包的發 布,那些尋找能夠將本地內容和 Web 開發完整集成的應用框架的開發人員將如虎添翼,憑 增開發活力與靈活表現。”
從 Nokia 發布的 Qt Software RodeMap 路線圖上,我們可以看到,在最新的 Qt4.5 以
及后續版本中,Qt 將在以下方向持續改進:
1\.不斷增強 Qt 的跨平臺能力 主要體現在:
+ 支持 Mac OS X Cocoa 框架
+ 增加了對 Windows CE 上 Phonon 和 WebKit 模塊的支持
+ 推出 Qt for S60 (Tech Preview)
+ 增加 Windows 7 支持
+ 推出 32 位/64 位版本,更新 Qt 以便適用于 64 位 Mac。 2\. 持續提升 Qt 的性能
主要體現在:
+ 提高了圖形繪圖性能
+ 改進 Web 和混合式開發,支持動態的集成 web 和本地內容 3.不斷完善 Qt 工具包
主要體現在:
+ 推出 Qt Creator 并不斷增強其功能
+ 繼續提供并改進 Eclipse 和 Visual Studio 插件
+ 研究并準備推出社區和協作工具
+ 支持混合式應用程序開發
+ 構建高效 Build 系統 4\. 支持先進的界面開發
主要體現在:
+ 推出 Qt Kinetic 項目
+ 增加手勢觸摸功能支持
+ 提供 OpenVG 支持功能
+ 增加 3D 支持工具
5\. 展開 Qt 框架發展方向研究 主要體現在:
+ 多媒體服務
+ 混合式應用程序開發
+ 內存和資源管理
+ XML Schema (模式) 支持
+ Qt 3D 可移植
+ 下一代對象視圖
看了上面的介紹,廣大的 Qt 用戶和潛在的使用者一定會極大的增強信心,毫無疑問的 是,被 NOKIA 收購后,Qt 將獲得更好更快的發展,并且會一如既往的堅持開源與商業的雙 重授權策略。
### 1.7.4 Qt 4.5—Qt 發展的重要里程碑
Qt4.5 的發布,可以看作是 Qt 發展史上的又一個重要的里程碑。借此, Qt 第一次提出 了“Qt EveryWhere”的口號,真正的全速前進走向了大規模的商業應用,開源社區也得到 了更加強有力的支持,尤為突出的是 Qt 的性能得到了很大的提升。用一句話來總結,就是 Qt 從未充滿如此奔放的活力和富有如此強大的號召力。
由于 Qt 4.5 版是自 Trolltech 被 NOKIA 收購后,Qt 發布的首個全新版本,因此顯得格 外引人注目,在國內外掀起了學習的熱潮。 Qt 4.5 變化較大,在很多方面與以前的 Qt4 系 列有所不同,為了使初學者不致于走彎路,下面就對 Qt4.5 的變化給大家做一個詳細的介 紹。
1\. 修改授權方式,增加 LGPL 協議 支持-Qt 更開放
Qt4.5 增加了對 LGPL 協議的支持,并繼續 支持多種授權協議如 GPL、GNU 等,這為 Qt 和 KDE 的商業應用進一步掃清了障礙。
2\.增加 SDK 包,可以直接安裝-Qt 更易用
首次增加了 Qt SDK 包,提供了直接安裝的版本,在一個單獨安裝程序內包含了使用
Qt 進行跨平臺開發所需的全部工具,其中包含了 Qt 庫、Qt Creator IDE、Qt 開發工具, 并且仍然像以前那樣提供二進制的 tar 包。
3\. 大幅度提升性能-Qt 更便捷
性能提升是 Qt 4.5 的主要設計目標之一。通過以重構關鍵功能、采用全新的插件式 圖形系統、推出全新的性能基準庫- QtBenchLib 等舉措,基于 Qt 的應用程序的運行時間 性能得到了大幅提高。
更為詳細的性能提升比較,請參見 Qt Labs 上的度量標準。
4\. 在 X11 上的測試平臺是 Kubuntu
目前在 x11 上,Qt4.5 已在 Kubuntu8.04、8.10 上驗證測試過了,但 Qt Software 并未提及其它的發行版。所以如果你想在 Linux 上使用 Qt4.5 的話,Kubuntu 將是一個不錯 的選擇。
5\. 區分為 32/64 位版
在 4.5 版以前,Qt 是不區分 32 位和 64 位版的,這次明確區分了,所以大家在使用時 需要注意,你的軟硬件平臺是否對應支持,不要 “張冠李戴”了。
6\.正式支持 WinCE 這個不用多說了,以前發布的版本都是測試版。
7\.支持 Symbian 上的 S60 平臺
截至 09 年 5 月,Qt 發布了 Qt for S60 預先發布版 "Garden" ,正式的版本將在 09 年中發布。
8\.不完全支持 MIPS
大家如果拿到了 Qt4.5 的 SDK,可以注意一下,其名字中均帶有 x86 字樣,經過官方 證實,目前 Qt4.5 在 MIPS(比如國產 CPU 龍芯)上還不能直接使用,要使用的話,需要采 用編譯的方式安裝,并且要修改某些文件的內容,步驟比較繁雜,難度較大。不過已經有網 友在龍芯上編譯 Qt Creator 成功,詳情可以參見 Qt 知識庫網站。(見附錄網址)
9\.在 Mac 上支持 64 位 Cocoa
Qt 4.5 在全新的 Mac Cocoa API 基礎上對 64 位應用程序開發提供支持,這樣 Qt 開 發人員就可將需要大量資源的應用程序部署到最新版本的 Mac OS (10.5) 上。
10\.升級至 WebKit 最新版本
在 Qt 4.5 中,Qt WebKit Integration 現已使用 WebKit 最新版本,其中包括:
+ 支持 Netscape 插件 (NPAPI),可在您的 Qt 應用程序中加入 Flash? 內容
+ 支持 HTML 5,包括縮放、基于 CSS 的動畫以及更多功能
+ 集成精簡的 SquirrelFish JavaScript 引擎 11\. 附加許多新功能
Qt 4.5 引入了許多其他跨框架的新功能,其中包括:
+ 用于 QtScript ECMA 標準 Qt 腳本引擎的全新調試器 (觀看視頻!)
+ 支持 XSLT,可將 XML 內容轉換為 XML、HTML 或其他文本
+ 支持開放文檔格式 (.odf)
+ 改進了代理支持
12\. Qt Jambi 將交由社區開發
Qt 與 Java 編程語言綁定的最終新功能版 Qt Jambi 4.5.0_01 已經發布,根據 NOKIA 發表的聲明,Qt Jambi 的開發將在一年的維護期結束后停止,以便集中資源進行 Qt 跨平 臺應用和 UI 框架的開發。為了確保 Qt Jambi 實施的連續性,該項目會在
http://qt.gitorious.org 上保留,社區開發者仍可繼續對其進行開發。
通過這次發布,Nokia 確定了 Qt Software 的發展方向-就是在保持 Qt 跨平臺發展這 個主線的同時,能夠適應更多“有前景”的軟硬件平臺,比如 Nokia 的 Symbian 操作系統 上的 S60 等,并提供對開發全生命周期提供完整的支持。
總之一句話,Qt 采用了諸多新的舉措,努力使得 Qt 比以往更開放、更易用以及更便捷。
有關 Qt 4.5 包含的新功能的詳細信息,請查閱 Qt 技術文檔。
在不同的平臺上,Qt 提供的功能是不盡相同的,表 1-6 所示為 Qt4.5 在所支持的平臺 上的功能分布,表 1-7 所示為 Qt4.5 的類庫的核心功能,大家可作為參考。
表 1-6 Qt4.5 在各個平臺上的功能分布
| 功能模塊 | Linux/X11 | Embedded Linux | Windows | Windows CE | Mac OS X |
| --- | --- | --- | --- | --- | --- |
| 拖放可視化 GUI 構 建器 | √ | √ | √ | √ | √ |
| 國際化和 翻譯工具 | √ | √ | √ | √ | √ |
| 可定制的 HTML 幫 助文件閱讀器 | √ | √ | √ | √ | √ |
| 集成 Eclipse 和 KDevelop IDE | √ | x | x | x | x |
| 集成 Visual Studio | x | x | √ | √ | x |
| 一整套可定制的 UI 控件或 widget | √ | √ | √ | √ | √ |
| 本地 Aqua 外觀, 以及 Aqua 風格的 widget | x | x | x | x | √ |
| 集成了 OpenGL, 支持 3D 圖形 | √ | √ | √ | √(OpenGL ES) | √ |
| 集成了 Direct3D? 的 3D 圖形支持 | x | x | √ | x | x |
| 強大的 多線程功能 | √ | x | √ | x | √ |
| 可處理上百萬個對 象的 2D 圖形畫布 | √ | x | √ | x | √ |
| 集成了 Phonon 多 媒體框架 | √ | √ | √ | x | √ |
| WebKit 集成 | √ | √ | √ | x | √ |
| 網絡、XML 和數據 庫功能 | √ | √ | √ | √ | √ |
| ECMA 標準腳本引擎 | √ | √ | √ | √ | √ |
| 緊湊高效的視窗系 統 (QWS) | x | √ | x | x | x |
| 虛擬幀緩沖 (QVFb) | x | √ | x | x | x |
表 1-7 Qt4.5 類庫的核心功能
| 功能模塊 | 詳細內容 |
| --- | --- |
| 先進的圖形用戶界面( GUI) | Qt 使用所支持平臺的本地化圖形 API,充分利用系統資源并給予應用程序 本地化的界面。 |
| 基于 OpenGL? 與 OpenGL? ES 的 3D 圖形 | 雖然 OpenGL 完美支持 3D 圖形,但卻不支持創建應用程序用戶界面。Qt 通過與 OpenGL 的緊密集成解決了這一難題。并且支持 Windows 平臺上的 Direct3D? |
| 多線程 | Qt 的跨平臺多線程功能簡化了并行編程,另外它附加的同步功能可以更 加輕松地利用多核架構。 |
| 嵌入式設備的緊湊視窗系統 | 可以把基于 Qt 的應用程序直接寫入 Linux 幀緩沖,解除了開發者對 X11 視窗系統的需求。 |
| 對象間通訊 | 提供信號與槽機制,使應用程序能夠在不同的組件間通信 |
| 2D 圖形 | Qt 給您提供一個功能強大的 2D 圖形畫布,用以管理和集成大量的圖形元 素。 |
| 多媒體框架 | Qt 使用 Phonon 多媒體框架為眾多的多媒體格式提供跨桌面與嵌入式操作 系統的回放功能。Phonon 可以輕松將音頻與視頻回放功能加入到 Qt 應用 程序當中,并且在每個目標平臺上提取多媒體格式與框架。 |
| WebKit 集成 | Qt WebKit 集成,即 Qt 集成了 WebKit 功能,WebKit 是 KDE 項目下基于 KHTML 的開放源 web 瀏覽器引擎。目前 Apple?,Google? 與 Nokia 等公 司使用 Qt WebKit 集成。 |
| 網絡連接 | Qt 讓您網絡編程更簡單,并支持跨平臺網絡編程 |
| XML | Qt 為 XML 文件以及 SAX 和 DOM 協議的 C++實現,提供了一個流媒體文件讀寫器。同時 Qt 還包含了 XQuery – 一個簡單的類似 SQL 的查詢語 言,用于解析 XML 文件來選擇和聚合所需要的 XML 元素,并且將它們轉換 成 XML 輸出或其它格式的輸出。 |
| 腳本引擎 | Qt 包含一個完全集成 ECMA 標準的腳本引擎。 QtScript 提供 QObject 集成,把 Qt 的信號與槽機制整合成腳本,并且實現了 C++ 與腳本的集 成。 |
| 數據庫 | Qt 幫助您將數據庫與您的 Qt 應用程序無縫集成,支持所有主要的數據庫 驅動,并可以多種視圖或數據識別表單方式顯示數據 |
- 第 1 章 走近 Qt
- 1.1 Qt 簡介
- 1.2 Qt 紀事概覽
- 1.3 Qt 套件的組成(以 Qt4.5 為準)
- 1.4 Qt 的授權
- 1.5 Qt 的產品
- 1.6 Qt 的服務與支持
- 1.7 Qt 的最新進展
- 1.8為什么選擇 Qt
- 1.9 問題與解答
- 1.10 總結與提高
- 第 2 章 Qt 的安裝與配置
- 2.1 獲取 Qt
- 2.2 協議說明
- 2.3 安裝 Qt
- 2.4 配置 Qt4 環境
- 2.5 問題與解答
- 2.6 總結與提高
- 第 3 章 Qt 編程基礎
- 3.1 標準 C++精講
- 3.2 Windows 編程基礎
- 3.3 Linux 編程基礎
- 3.4 Mac 編程基礎
- 3.5 問題與解答
- 3.6 總結與提高
- 第 4 章 Qt 4 集成開發環境
- 4.1 常見的 Qt IDE
- 4.2 Qt Creator
- 4.3 Eclipse
- 4.5 問題與解答
- 4.6 總結與提高
- 第 5 章 使用 Qt 基本 GUI 工具
- 5.1 使用 Qt Designer 進行 GUI 設計
- 5.2 使用 Qt Assistant 獲取在線文檔與幫助
- 5.3 使用 Qt Demo 學習 Qt 應用程序開發
- 5.4 問題與解答
- 5.5 總結與提高
- 第 6 章 Qt 4 程序開發方法和流程
- 6.1 開發方法
- 6.2 Hello Qt
- 6.3 幾個重要的知識點
- 6.4 問題與解答
- 6.5 總結與提高
- 第 7 章 對話框
- 7.1 QDialog 類
- 7.2 子類化 QDialog
- 7.3 快速設計對話框
- 7.4 常見內建(built in)對話框的使用
- 7.5 模態對話框與非模態對話框
- 7.6 問題與解答
- 7.7 總結與提高
- 第 8 章 主窗口
- 8.1 主窗口框架
- 8.2 創建主窗口的方法和流程
- 8.3 代碼創建主窗口
- 8.4 使用 Qt Designer 創建主窗口
- 8.5 中心窗口部件專題
- 8.6 Qt4 資源系統專題
- 8.7 錨接窗口
- 8.8 多文檔
- 8.9 問題與解答
- 8.10 總結與提高
- 第 9 章 Qt 樣式表與應用程序觀感
- 9.1 應用程序的觀感
- 9.2 QStyle 類的使用
- 9.3 樣式表概述
- 9.4 使用樣式表
- 9.5 問題與解答
- 9.6 總結與提高
- 第 10 章 在程序中使用.ui 文件
- 10.1 uic 的使用
- 10.2 Ui_YourFormName.h 文件的組成
- 10.3 編譯時加入處理.ui 文件的方法
- 10.4 運行時加入處理.ui 文件的方法
- 10.5 信號與槽的自動連接
- 10.6 問題與解答
- 10.7 總結與提高 本章主要講解了以下內容:
- 第 11 章 布局管理
- 11.1 基本概念和方法
- 11.2在 Qt Designer 中使用布局
- 11.3 基本布局實踐
- 11.4 堆棧布局
- 11.5 分裂器布局
- 11.6 自定義布局管理器
- 11.7 布局管理經驗總結
- 11.8 問題與解答
- 11.9 總結與提高
- 第 12 章 使用 Qt Creator
- 12.1 Qt Creator 概覽
- 12.2 Qt Creator 的組成
- 12.3 快捷鍵和常用技巧
- 12.4 Qt Creator 構建系統的設置
- 12.5 處理項目間依賴關系( Dependencies )
- 12.6 Qt 多版本共存時的管理
- 12.7 使用定位器在代碼間快速導航
- 12.8 如何創建一個項目
- 12.9 實例講解
- 12.10 使用 Qt Creator 調試程序
- 12.11 問題與解答
- 12.12 總結與提高
- 第 13 章 Qt 核心機制與原理
- 13.1 Qt 對標準 C++的擴展
- 13.2 信號與槽
- 13.3 元對象系統
- 13.4 Qt 的架構
- 13.5 Qt 的事件模型
- 13.6 構建 Qt 應用程序
- 13.7 總結與提高
- 附錄 A qmake 使用指南
- A.1 qmake 簡介
- A.2 使用 qmake
- 附錄 B make 命令
- B.1 命令解釋
- B.2 使用 make 自動構建
- 附錄 C Qt 資源
- C.1Qt 官方資源
- C.2 Qt 開發社區