Showing posts with label Qt. Show all posts
Showing posts with label Qt. Show all posts

Qt SDK Linux Online + PyQt

Official Website: http://qt.nokia.com/

絕大部分的人裝Qt都不用像我的手續那麼多,透過apt-get幾分鐘後就可以完成。只是因為有時候我需要一些實驗性的新功能,所以必須手動更新至最新版的Qt開發環境,安裝過程就顯得稍微多一點,以下是我在Ubuntu 11.04底下安裝Qt和PyQt的過程

Step 1. 準備套件
由於Python的部份我是之前沿用系統預設的2.7版本,所以直接安裝python2.7-dev即可,而libxext-dev是之後編譯PyQt時會需要用到。
sudo apt-get install python2.7-dev libxext-dev
Step 2. 安裝Qt
下載Qt SDK 網路安裝版安裝,由於是線上安裝程式,整個安裝過程可能會要幾十分鐘到幾小時(視網路速度而定)

Step 3. 設定Qt
安裝完後QtSDK會在你的/home目錄底下,我們要將QtSDK/Desktop/Qt/473/gcc/bin設定在PATH路徑裡(修改~/.profile裡最後一行PATH的值),並且要將Libraries給link起來,透過以下指令完成(請把路徑換成你的QtSDK安裝的位置)
sudo ldconfig /home/xinyu/QtSDK/Desktop/Qt/473/gcc/lib
Step 4. 安裝SIP
Download: http://www.riverbankcomputing.co.uk/software/sip/download
透過以下指令即可安裝完成
python confgiure.py
make
sudo make install

Step 5. 安裝PyQt
Download : http://www.riverbankcomputing.co.uk/software/pyqt/download

由於QtSDK是以static libraries的方式安裝,所以在執行configure.py時要帶上-g參數,完整安裝指令如下:
python confgiure.py -g
make
sudo make install

沒意外的話這樣子你安裝完成了。

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/

Qt and Qt Creator

Official Website: qt.nokia.com


在先前已經發布過關於Qt的文章,這裡將以往的資料重新校正更新。
Qt是一個跨平台(Windows, Linux, Mac, Symbian, Maemo)的圖形介面Framework並由知名的手機公司Nokia所支撐,在linux系統底下有不少軟體是以Qt作為圖形介面的開發,例如VLC,SMPlayer等等。透過QtCreator的圖形介面開發工具,可以有效降低開發所需時間,以提昇整體工作效益。

Qt Installation

如果沒有開發上的需要,建議直接下載官方所提供的bin安裝檔,不然手動編譯Qt可是要花上不少時間。

下載位置:http://qt.nokia.com/downloads
非商業用途時選擇LGPL版本下載即可。目前最新的版本為4.6.3,以Linux為例,安裝方式如下:

對下載好的安裝檔增加執行的權限
chmod u+x qt-sdk-linux-x86-opensource-2010.04.bin
執行qt安裝程式
./qt-sdk-linux-x86-opensource-2010.04.bin
安裝完後Qt的主程式會被放置在/opt/qtsdk-2010.04裡,這時你可以視情況將qt的bin連結到.profile裡。
sudo gedit .profile
將Path的變數修改成如下:
PATH="$HOME/bin:$PATH:/opt/qtsdk-2010.04/qt/bin"
重新登入系統即生效。

對於其他語言與Qt搭配的開發環境(如PyQt)在編譯過程可能會需要一些Library,而這邊Library必須是手動編譯Qt才會安裝至系統,但如前面所提,手動編譯Qt實在是太花時間,這些缺少的Library我們就額外安裝吧!
sudo apt-get install libfreetype6-dev libfontconfig-dev libxrender-dev libsm-dev libglib2.0-dev libxext-dev libxext6-dbg x11proto-xext-dev
以往使用qmake的編譯方式筆者我就不推薦再使用,除非你只是單純想簡單測試一下Qt的小程式,否則還是以QtCreator會比較完善一點。這裡還是提供了一個使用傳統qmake來編譯的範例。
Download : QPasswordCheck.zip
下載回去解壓縮後,輸入以下指令來編譯:
qmake -project
qmake
make

執行編譯好的程式畫面如下:


Qt Resource

取得Qt的相關資料除了透過官方的http://qt.nokia.com/developer開發頁面之外,你還可以透過參考Qt的範例來了解如何使用Qt寫圖形介面程式,相關範例可以在/opt/qtsdk-2010.04/qt/demos底下搜尋到。

[Qt] Qt 4.5 QGroupBox with QGTkStyle

Orange - data analysis tool

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