作者bil193 (丁丁)
看板C_and_CPP
標題[問題] wxWidgets與Qt
時間Sat Oct 2 20:09:19 2010
一直想學寫視窗程式
但又不想用C#(寫好的程式要執行需有.Net Framework的環境才行&被微軟綁住)
於是查了wxWidgets與Qt的比較:
(以下摘自
http://blog.udn.com/keithmin/679610 )
wxWidgets 和 MFC 最接近,命名習慣或架構都高度相似,會 MFC 幾乎不用重新學習有十
餘年歷史,此外,他的物件封裝比 MFC 要好,提供的功能也多上太多,又跨平台一般知
名的 MFC 程式都會選擇用 wxWidgets 改寫,來快速移植原程式到其他平台例如 eMule
用 wxWidgets 移植出 aMule, xMule, 還在開發中的 Filezilla 3...等
而他最主要的特色是,他是"跨平台"的 "Native" GUI toolkit,在各種平台上都可寫出
使用該平台內建 Native 原生圖形介面的程式。 在 Windows 上就長得跟其他 Windows程
式一樣,在 Linux 下就使用 gtk+ 的圖形介面,在 Mac OS X 下就可以使用華麗的Aqua
外觀風格,這點是非常強悍。 不像 gtk+ 到其他系統都還是只能用 gtk+ 自己的缺點是
,中文支援在有些地方會出問題,例如剪貼簿的操作。 得自己 patch但仍然相當推薦,
即使是個龐大的 library,效能依舊不會太差,尤其在Windows 上執行速度並不輸 MFC,
與其學 MFC,不如學 wxWidgets。
Qt 的功能,應該是這三者加上 MFC 之中最強大的,文件也很完整,又有 RAD 工具可以
輔助開發,並且有商業公司做強力後盾。不但有 Windows/X Window/Mac 版本,甚至還有
嵌入式系統可用的版本,穩定性還不錯,物件封裝也算良好,資源比 GTK+ 或wxWidgets
多得非常多,而且發行公司提供了相當多範例,算是一家以開放原始碼成功營利的模範公
司。 知名的 KDE 整個是用他開發,證明了他的穩定性和強大功能。
缺點是如果你用他開發非 GPL 開放程式碼的軟體,必須以極昂貴的金額,購買商業版本
。 而他的圖形介面並不完全是 "Native GUI",只是透過 theme 去模擬系統上的標準
GUI,所以看起來很像,卻會有些地方可以明顯看出破綻。 執行速度緩慢還有過於龐大
則是另一個問題。 雖然封裝得很良好文件也齊全,並不代表他就很容易學還有一個嚴重
問題是,他寫的不是標準 C++,他使用的 signal/slot 機制必須透過 Qt提供的
preprocessor 處理過才可以轉送給編譯器,這部份可能被限定用 qmake,算是一個可惜
的地方,不過瑕不掩瑜,還是很推薦。忘了說,他內部也是 unicode,多國語言沒問題。
文章裡說Qt不容易學,但是文件、資源多
wxWidgets聽說目前也只有一本紙本的原文書
小弟觀望了好一陣子
還是不知道要學哪一個
看了他們的比較,越看越不曉得適合學哪一種@@
不知道板上有沒有人 能給些建議?
還是...不要想這麼多,隨便亂數挑一個學下去就對了??
ps.小弟英文弱弱的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.65.21
推 chchwy:你說得那本wxWidget有簡體翻譯版 翻得不錯 10/02 20:12
→ chchwy:關鍵字 使用wxWidgets进行跨平台程序开发 10/02 20:13
※ 編輯: bil193 來自: 140.113.65.21 (10/02 20:16)
推 alishas:Qt 現在也有LGPL授權,開發私有軟體也可以不用購買商業版 10/02 20:45
→ alishas:Qt沒有限定一定要qmake不可,你可以選擇自己喜歡的建構 10/02 20:49
→ alishas:工具,像KDE就用cmake 10/02 20:50
→ tinlans:Qt 的資料太舊了,被 Nokia 買去以後就有 LGPL 可以選擇。 10/02 20:52
推 Bencrie:我只知道VLC是從wxWidget跳去 Qt XD 10/02 20:52
→ tinlans:而且 GUI emulation 怎麼會慢?有點詭異。 10/02 20:53
→ Bencrie:這三套toolkit都不錯,個人是不太喜歡寫C++ code,所以只 10/02 20:54
→ Bencrie:用 gtk。 10/02 20:54
推 clanguage:wxWidgets 才是王道 看起來很像MFC 但好寫很多 10/02 23:49
→ bil193:謝謝樓上大大的回答 10/05 19:20