(非原創,網絡摘抄)程序員
跨平臺的C++ GUI工具庫不少,但是應用普遍的也就那麼幾個,Qt、wxWidgets即是其中的翹楚
這裏把GTK+排除在外,以C實現面向對象,上手至關困難,並且Windows平臺下執行至關慢且不穩定。網絡
Qt和wxWidgets各有各的優勢,也各有各的缺點,各有各的適合應用點。
工做環境和愛好限制,我的曾經分別使用過Qt和wxWidgets,
到如今,就我的而言,選擇在通常程序方向採用wxWidgets,在手機應用程序方向採用Qt。工具
先說版權:
Qt,是芬蘭的TrollTech公司研發的,如今屬於Nokia,一直奉行的是雙LICENSE策略,一個是商業版,一個是免費版:商業版的LICENSE就不說了,免費版的LICENSE,4.5版本以前一直採用GPL,意味着採用Qt的程序要麼是商業軟件,要麼就是GPL軟件,這就形成了雖然出了個著名的KDE,惋惜應用範圍仍是受限,不然的話,應用應該更廣闊點;不過還好,Nokia收購了以後意識到這個問題,4.5版本以後採用了LGPL,其餘開發人員能夠發佈基於免費Qt庫鏈接的商業軟件了。設計
wxWidgets,一直奉行的是LGPL LICENSE。對象
再評評各自的優缺點:
Qt,一直以來開發公司做爲商業公司進行運做,以客戶需求爲目標,提供了一系列完整的文檔和RAD工具,並提供最爲完整的平臺支持;
對開發人員而言,Qt庫自己,也是全部的GUI工具庫中最爲面向對象化的,同時也是最爲穩定的。資源
羅列一下:
Qt的優勢:
1. 支持的平臺最多
2. 商業化支持
3. 完整的文檔和RAD工具
4. 最爲面向對象
5. 世界上最爲成功的手機廠商支撐,對於移動終端的支持最爲完善
Qt的缺點:
1. 使用的是非標準C++
2. 每一個平臺不是"Native GUI"
3. 過於龐大且運行緩慢
4. 與其它庫不是很兼容(主要是STL之類的兼容問題)
5. 基本只能使用特定的qmake工具(其它工具通過良好的修改也能夠,不過至關於從新編寫一個qmake,是否值得)開發
wxWidgets,一直以來的LGPL發佈,至關開放,積累了至關一部分研究用戶,與現有各種工具庫無縫鏈接地很是好;
同時惋惜的是沒有很是強大的正規商業化運做,可靠性、資源豐富性遠比不上Qt。
仍是羅列一下:
wxWidgets的優勢:
1. 開放,對於各種第三方庫的良好兼容(TAO工具中的Naming_Service Viewer就是採用wxWidgets的)
2. 支持各平臺的"Native GUI"
3. 雖然有龐大的庫,運行效果極爲顯著
4. 對各種現有工具的支持(筆者就採用MPC一站式產生全部項目的編譯工程)
5. 偏MFC,對於Windows平臺MFC程序的跨平臺遷移,具備自然的優點
6. XRC,則提供了代碼和設計分離的便利,程序員專一總體開發,UI設計羣體則提供運行期界面、多語言版本支持功能等
wxWidgets的缺點:
1. 因爲是偏MFC,則面向對象封裝作得不是很是好
2. 相對缺少的文檔、資源
3. 缺少很好的商業化支持,若是商業軟件出問題須要支持,稍微麻煩點文檔
總之:
在採用第三方工具庫的複雜PC應用環境,有必定的底子,wxWidgets是不二的選擇
在只需採用Qt單一工具庫的應用環境,Qt是個不錯的選擇;特別是相似於手機這種嵌入式設備環境,因爲Nokia的加入,Qt更值得一用。get