PyQt

Official Website:PyQt

有一段時間我試著在Linux底下找尋圖形介面程式開發的解決方案,我試用過效能非常高的Gtk+, 也使試用過平台支援很完善的Qt,當然也玩了一些wxWidget,至於那個平台獨立運行在JRE的Java就不在主要的考量範圍內。Gtk+確實帶來非常好的執行效能,但是使用它來寫GUI猶如在Windows底下使用Win32 API來寫GUI一樣的痛苦,延長的開發時程,大大降低我原本設計的需求。而Qt雖然有QtCreator做為良好的IDE,畢竟它還是以C++為主軸設計,面對運算能力較差的CPU環境裡,編譯過程也會是一種惡夢。最後我決定使用Script語言的直譯特性與widgets資源豐富的Qt整合出來的PyQt作為我在Linux底下
GUI設計的主要開發環境。

PyQt Installation


不同於使用LGPL授權的Qt,PyQt是使用授權較為嚴謹一點的GPLv2/v3,在非商業用途下,這些授權協議並不會對你在設計圖形系統程式上有太大的影響。PyQt基本上使用C++所撰寫出來的,所以在編譯過程中你必須要先裝G++。在編譯PyQt之前,你的系統裡必須要有以下幾個程式,這幾個套件你可以從我先前的文章或者其官方網站上取得編譯資源。
安裝完上述的套件後,我們可以開始正式編譯PyQt了,編譯過程跟一般的程式沒有兩樣,只是configure是使用python來撰寫的,自然要使用python來執行。
python ./configure.py
make
make install

如果你的CPU運算能力並不是很好,這個編譯過程可能會花上你不少時間。編譯完成之後你可以從原始碼裡的examples挑出一些範例來執行,這裡我們執行一個名為stickman的程式(/examples/animation/stickman)


PyQt Resource

至今還沒有一個完整的PtQt Reference,其中原因也可能是因為PyQt幾乎跟Qt是一比一的對應,只是在語法上必須從C++轉到Python上來表示,對於要學習PyQt的人除了藉由pyuic將原先qt裡的ui轉換過來之外,也可以導覽以下的tutorial來學習

http://www.commandprompt.com/community/pyqt/

http://zetcode.com/tutorials/pyqt4/

2 comments:

  1. Gtk+ 可以使用Glade來設計UI,還滿方便的!

    ReplyDelete
  2. 透過Glade設計後所產生的xml檔案的確可以減少自行手動設計ui的程式碼部份,但是Glade本身還有很大的進步空間。

    ReplyDelete

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas