Re: [問題] wxWidgets與Qt

看板C_and_CPP作者 (燒賣)時間13年前 (2010/10/02 21:28), 編輯推噓3(3016)
留言19則, 7人參與, 最新討論串2/5 (看更多)
※ 引述《bil193 (丁丁)》之銘言: : 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。 沒用過 wxWidgets,不過它發展歷史悠久了也很成熟,使用者也不少。 我同意最後一句話,如果不選 .net 要用 MFC 的話,可能乾脆用 wxWidgets 就好了。 : Qt 的功能,應該是這三者加上 MFC 之中最強大的,文件也很完整,又有 RAD 工具可以 : 輔助開發,並且有商業公司做強力後盾。不但有 Windows/X Window/Mac 版本,甚至還有 : 嵌入式系統可用的版本,穩定性還不錯,物件封裝也算良好,資源比 GTK+ 或wxWidgets : 多得非常多,而且發行公司提供了相當多範例,算是一家以開放原始碼成功營利的模範公 : 司。 知名的 KDE 整個是用他開發,證明了他的穩定性和強大功能。 : 缺點是如果你用他開發非 GPL 開放程式碼的軟體,必須以極昂貴的金額,購買商業版本 : 。 而他的圖形介面並不完全是 "Native GUI",只是透過 theme 去模擬系統上的標準 : GUI,所以看起來很像,卻會有些地方可以明顯看出破綻。 這是有誤的。在 Mac OS X 和 Windows 上 Qt 都是與 Platform SDK 連結,具有 native look&feel,尤其在 Mac 上也已經從舊的 Carbon 轉移到新的 Cocoa 了。 至於在 Linux 上,Qt 本來就是 native GUI,不過可以套 gtk+ theme 讓它看起來 比較像 gtk+ 應用程式,在 gnome 下會比較不突兀。 : 執行速度緩慢還有過於龐大 : 則是另一個問題。 雖然封裝得很良好文件也齊全,並不代表他就很容易學還有一個嚴重 : 問題是,他寫的不是標準 C++,他使用的 signal/slot 機制必須透過 Qt提供的 : preprocessor 處理過才可以轉送給編譯器,這部份可能被限定用 qmake,算是一個可惜 : 的地方,不過瑕不掩瑜,還是很推薦。忘了說,他內部也是 unicode,多國語言沒問題。 : 文章裡說Qt不容易學,但是文件、資源多 Qt 的設計良好,如果你有一點 OO 的底子的話會學很快,我自己在設計上遇到困難的 時候也經常參考 Qt 的作法,特別是有跨平台的 c++ 實做需求的時候。 我覺得 Qt 應該參考了不少 Java 的設計精神,在許多地方可以看到相似處。 至於速度嘛,沒有跨 tool widgets 的 benchmark,很難判斷。一般認為 Qt 比 gtk+ 慢一些。現在學 Qt 還有個附帶的好處,就是 Qt 在 Symbian/Maemo/MeeGo 上都已 成為主要的 tool widget,也支援 Windows Mobile 6 (WP7 禁止原生程式,所以未來 還不明朗),你可以順便跨進行動裝置應用程式的撰寫。 Qt 一直在長大,功能越來越豐富。Qt 4.7 開始加入 Qt Quick (QML),可以用類似 css 的方式敘述 UI,搭配 JavaScript 撰寫程式邏輯。除此之外 Qt 也是 Python 的主要 GUI binding 之一,選擇性很多。前面有人提到 Qt 已經有 LGPL 版,而 Nokia 甚至 還因為 PyQt 沒有 LGPL 的選項而正在重刻一套 PySide,好讓 Python 的使用者也能 以 LGPL 授權使用 Qt。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.9.46 ※ 編輯: freesamael 來自: 111.250.9.46 (10/02 21:39)

10/03 01:30, , 1F
可惜Qt寫出來的程式通常都要附上Qt的dll 要快20MB吧?
10/03 01:30, 1F

10/03 02:15, , 2F
沒那麼大啦, 我剛看大概 10 MB 多一點而已
10/03 02:15, 2F

10/03 03:29, , 3F
怕的話就用靜態連結。QtCore + Qt3Supprt + QtGUI 這幾個
10/03 03:29, 3F

10/03 03:29, , 4F
基本的加一加差不多快 20MB 沒錯。
10/03 03:29, 4F

10/03 03:29, , 5F
不過靜態連結,就要小心 LGPL 的問題。
10/03 03:29, 5F

10/03 11:56, , 6F
我編QT也是14MB而已 樓上有做strip嗎
10/03 11:56, 6F

10/03 11:57, , 7F
然後 wxwidgets 又再少一點點 大小差不多
10/03 11:57, 7F

10/03 13:26, , 8F
有做 strip 啊。
10/03 13:26, 8F

10/03 13:27, , 9F
我看的是 linux 的 .so file,Windows 不知道。
10/03 13:27, 9F

10/03 13:27, , 10F
3.0M Oct 3 12:47 libQt3Support.so.4.6.3
10/03 13:27, 10F

10/03 13:27, , 11F
2.6M Oct 3 12:47 libQtCore.so.4.6.3
10/03 13:27, 11F

10/03 13:27, , 12F
12M Oct 3 12:47 libQtGui.so.4.6.3
10/03 13:27, 12F

10/03 17:43, , 13F
為什麼會用到qt3support阿@@?
10/03 17:43, 13F

10/03 18:20, , 14F
這問題就跟為什麼還有公司在用 Fedora Core 8 一樣。
10/03 18:20, 14F

10/03 22:27, , 15F
QtGui4.dll 9,814,016 位元組
10/03 22:27, 15F

10/03 22:28, , 16F
QtCore4.dll 2,537,472 位元組
10/03 22:28, 16F

10/03 22:28, , 17F
以上是 Qt 4.7.0 windows 版
10/03 22:28, 17F

10/03 22:29, , 18F
補一個 Qt3Support4.dll 2,678,272 位元組
10/03 22:29, 18F

10/05 19:20, , 19F
謝謝您的回答
10/05 19:20, 19F
文章代碼(AID): #1CfpEPvO (C_and_CPP)
文章代碼(AID): #1CfpEPvO (C_and_CPP)