星期五, 8月 12, 2011

Qt4 VS wxWidget

最近沒喝啤酒,玩了兩套跨平台 GUI  framework,不知道這麼稱呼精不精準,不過像這種有大框架的軟體架構我都叫 framework。這兩套分別是 Qt4 和 wxWidget。

先講講 wxWidget,一開始上手的 wxPython,照 tutorial 寫了幾隻小程式,雖然不太清楚實際運作的原理,不過不到百行又沒有使用太多的繼承的手法就可以寫出一些 Dialog 程式,感覺很順手, wxPython 用起來的感覺很棒。不過後來在用 ctypes 的時候遇到一些克服不了的問題就放棄在 wxPython 上打轉,回到 C 語言的領域。

試了一下 wxWidgets ,這是 C++ 語言的版本。 wxPython 是 wxWidget 的一個跨語言的包裝。 在 Ubuntu 上 wxWidgets 可以和 Code::Block 這個 IDE 做很棒的編譯的整合。 而且現在 Code::Block 的安裝非常方便。不過為了 RAD 的開發環境,試用了一個 wxBuilder 的程式,這個程式的目的是想做到拉一拉元件,就可以排列組合 UI 。不過用使用的邏輯非常的怪,很不直覺,也很不靈活。都用的不順手了,還談什麼RAD。而且在 wxWidgets 上遇到 slider 反應很慢的 Bug,這個又是我必需的元件,只好再試試其他的方案。

wxWidget 的好處就是開源,自由度高。不過風險要自己承擔,使用時要看看自己是否能夠承受自由的代價。

再來是 Qt ,這套的後盾比較堅強,是 Nokia。開發環境以及開發軟體的成熟度很高,很有商業軟體的味道。離線安裝檔下載下來大約 1 G,安裝之後馬上就有完整的開發環境,不需要在東補西補。另外,在 Qt 有一些特別的訊息傳遞機制,就是 signal & slot,所以編譯的環境和 wxWidgets 不同,需要先用 qmake "翻譯"過才能真的編譯。另外,Qt 還可以直接輸出在Symbian 手機上執行的程式,沒實際傳到手機試過,可是開發環境中有手機的模擬器,寫好的程式可以傳到手機模擬器上執行。

目前用起來 Qt 在開發環境大勝。 Qt Designer 有做到 '拖拉放' 理想中拉 UI 介面的功能,不過可能是 Qt 的靈活度太高了,描述 UI 的方式很多種,一下子 .qml ,一下子 .ui。我想在深入了解之前可能分不清差異。

目前都只是皮毛的玩了幾天,我想先以 Qt 開發為主,wxWidgt 是未來有特殊需求的備案。



沒有留言: