11 5月 2008

wxWidgets簡介

  最近有點無聊,想說找找跨平台的Language來玩看看,找了一些資料,也拜讀了PCMan大大的文章(Qt, Gtk+, wxWidgets的比較),感覺wxWidgets在跨平台的表現上很猛的樣子,除了可以在不同的平台上重新編譯外,還可以結合不同的Compiler得到該平台上最佳化的結果(Ex: Windows上可用Visual C++、Borland C++ Builder compile)。
  由於wxWidgets它底層的部分在不同的平台上是重新寫過的,所以跨平台的表現就比其他的Language來得強,也不像Java需要利用JVM來執行(馬的JVM...愈來愈肥)。但是也由於這個因素,在wxWidgets中,並非所有的元件都是跨平台的,有些元件只允許在某平台上才可執行(詳見此)。
  而wxWidgets的中文資料真是有點少得可憐…Google一下wxWidgets,繁體中文的結果竟然不到7000個=_=,看來在台灣真的是不太流行。

wxWidgets簡介
  首先要先了解wxWidgets的定位是什麼,wxWidgets是一個Open Source的C++ GUI Library,所以你可以選擇自己喜歡的開發平台、及該平台上的IDE compiler撰寫wxWidgets的程式。
  如果你不想用C++也沒關係,wxWidgets也提供其他binding wxWidgets的Language,比如Python(wxPython)、Perl(wxPerl)、Java(wx4j)…等等的Language來撰寫。

● wxWidgets支援的平台與相對應的wx Library
  • Windows : wxMSW
  • Linux : wxGTK
  • Mac : wxMac

  由於wxWidgets只是個GUI的Library,所以必須透過其他的IDE來撰寫程式,GUI Library最被迫切需要的就是用快速拖拉的方式(RAD),拉出使用者所見的圖形介面。雖然說直接在文字介面下coding也是可以,但是透過所見即所得的拖拉方式,總是比較輕鬆比較直觀。

● wxWidgets的RAD工具( Rapid Application Development )
  • wxFormBuilder : 免費,跨平台,但是只提供拖拉視窗並產生code,並不提供compile環境(純RAD),而且目前尚未提供將元件拖拉到Form上任何一點的位置,一定要擺在Layout(wxSizer)裡面才行
  • wxSmith : Code::Blocks內建的wxWidgets RAD工具,使用結果覺得不是挺穩定的
  • wxDev-C++ : 以Delphi開發的免費軟體,只能在Windows上執行,RAD+IDE
  • wxGlade : 以wxPython撰寫而成,RAD+IDE
  • 其他...

wxWidgets支援各平台上,在相對應IDE上compile
  • Cross-platform :
    • Code::Blocks
    • Eclipse
  • Windows :
    • Visual C++
    • Borland C++ Builder
    • Dev-C++
  • Linux :
    • Anjuta
    • KDevelop
  • Mac :
    • Xcode

這邊提供一些wxWidgets的連結參考:

沒有留言: