一 寫在開頭
1.1 本節內容
開個新坑—“PyQt5系列”,慢慢填。本文主要內容為PyQt5開發環境的搭建。
注意:PyQt 5.10以上的版本在Python 3.6中有BUG,PyQt 5.10版本是沒有問題的。在使用pip3安裝時可以指定版本為5.10,使用以下命令:
sudo pip3 install pyqt5==5.10 -i https://pypi.tuna.tsinghua.edu.cn/simple
1.2 本節目標
在Ubuntu 16.04 LTS環境下搭建一個基於eclipse和Qt Designer的PyQt5開發環境。我們可以使用Qt Designer設計好程序界面並生成ui文件,然后用pyuic5將ui文件編譯成python代碼,最后在eclipse中編寫響應事件以構成完整桌面應用程序。需要我們具有Ubuntu的基本操作經驗。
二 安裝PyQt5和Qt
2.1 安裝PyQt5
2.1.1 使用下列命令更新系統
sudo apt-get update sudo apt-get upgrade
2.1.2 安裝python3
注意:PyQt5不支持python2只支持python3,因此,在安裝PyQt5之前需要有python3。不過,Ubuntu系統默認是安裝有python3的,因此,這一步可以跳過。
2.1.3 安裝pip3
sudo apt-get install python3-pip
注意:如果已經安裝了pip3,這一步可以跳過。
2.1.4 安裝PyQt5(GPL版)
sudo pip3 install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:可以使用國內的pip源以加快下載速度。上面命令中使用了清華大學的pip源,你可以根據實際情況更改。
2.1.5 測試安裝
在命令行中輸入pyuic5(pyuic5命令由PyQt5提供,作用是將ui文件編譯成python代碼)然后按回車,如果出現了“Error: one input ui-file must be specified”的字樣,則說明pyuic5沒問題了。(注:出現這個報錯的字樣是因為我們沒有指定ui文件)
使用vim創建一個python文件名為hello.py並填入以下代碼。然后使用命令python3 hello.py進行執行,如果准確無誤的話,我們可以看到像下圖所示的小窗空彈出來了。
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3
4 import sys 5 from PyQt5.QtWidgets import QApplication, QWidget 6
7 if __name__ == '__main__': 8 app = QApplication(sys.argv) 9
10 w = QWidget() 11 w.resize(250, 150) 12 w.move(300, 300) 13 w.setWindowTitle('Simple') 14 w.show() 15
16 sys.exit(app.exec_())
2.2 安裝Qt
注意:安裝Qt的目的是為了獲取Qt Designer。暫時沒有查到如何在沒有安裝Qt的情況下單獨安裝Qt Designer,所以不得不安裝Qt以獲取Qt Designer。
2.2.1 安裝Qt
去Qt的官方網站(www.qt.io)下載linux下的離線Qt安裝包,然后根據提示一步一步地將Qt安裝在機器上。安裝過程並不復雜因此這里不進行贅述。
注意:本人安裝的Qt版本為Qt 5.9.1而且其默認的安裝路徑為/opt/Qt5.9.1。
2.2.2 獲取Qt Designer
如果將Qt安裝在了默認的位置,那么可以在/opt/Qt5.9.1/5.9.1/gcc_64/bin路徑下找到一個叫做designer的可執行文件,它就是Qt Designer。雙擊designer運行然后將其鎖定在啟動器上方便下次打開。
2.2.3 測試安裝
打開Qt Designer,如下圖所示,新建一個基於Main Window的ui文件。然后從左側的控件中選擇一個Push Button拖入中間空白區域,並將它的文字改為Hello World。將這個ui文件保存為window.ui。
打開命令行,使用命令pyuic5 window.ui > window.py將window.ui文件編譯成python代碼,python代碼將保存在window.py中。打開window.py,如果能夠看到如下圖所示的內容則表明安裝成功。可以看到代碼最后一行正表示我們把按鈕上的文字改成了Hello World,因此,ui文件window.ui和python代碼window.py是相對應的。
三 安裝eclipse和pydev
3.1 安裝jdk
去Java官網(http://www.oracle.com/technetwork/java/javase/downloads/index.html)下載jdk然后根據Java提供的文檔進行安裝,最后設置好環境變量。安裝過程很簡單,在64位的Ubuntu下只要將Java SE的jdk下載解壓后放在你選擇的安裝目錄然后在配置環境變量即可完成安裝。因此,這里不再贅述安裝過程。
注意:這里安裝jdk的目的是為eclipse提供jre,因為eclipse是基於Java的。與此同時,你可以只安裝jre而不安裝jdk如果你不進行Java開發的話。這里為了省事直接安裝jdk。
3.2 安裝eclipse
同jdk的安裝一樣。去eclipse官網(www.eclipse.org)下載64位的linux版eclipse將其解壓放在你選擇的目錄下即可。這里不贅述安裝過程。
注意:eclipse的順利運行取決於你安裝好了jre並正確設置了環境變量。
3.3 安裝pydev
3.3.1 安裝pydev
打開eclipse,然后選擇Help-->Install New Software...。在彈出的界面中選擇Add...,然后在Name和Location中分別填入PyDev和http://pydev.org/updates如下圖所示,然后點擊OK。經過一段時間的等待后選中出現的PyDev選項選擇安裝即可。
3.3.2 安裝配置和測試
在安裝好PyDev后,重啟eclipse,選擇Window-->Preferences-->PyDev-->interpreters-->Python Interpreter。在彈出的界面中點擊Quick Auto-Config兩次。注意是兩次!第一次點擊找到的是python2的解釋器,即下圖中的python和/usr/bin/python這一行。第二次點擊找到的才是python3的解釋器。此時出現的第二行是python1和/usr/bin/python3。為了不被搞糊塗,將第二行中的python1改為python3,如下圖所示。改完后點擊Apply and Close完成配置。
接下來我們建立一個小項目來測試安裝。在eclipse中選擇File-->New-->Project...-->PyDev-->PyDev Project來創建一個PyDev項目。將項目命名為PyQt5-Test。完成之后,eclipse將打開PyDevProject視圖。然后點擊PyQt5-Test項目新建一個名為src的文件夾。點擊src文件夾右鍵選擇New-->PyDev Module新建一個名為Test.py的python文件。注意是選擇PyDev Module!(注意:此時PyDev會要你選擇Templates,使用默認的Empty即可,如下圖所示)然后在Test.py中填入以下內容。保存文件,點擊左上角的Run PyQt5-Test Test.py如果出現了一個如下圖所示的小彈窗則說明大功告成了!
1 import sys 2 from PyQt5.QtWidgets import QApplication, QWidget 3
4 if __name__ == '__main__': 5 app = QApplication(sys.argv) 6
7 w = QWidget() 8 w.resize(250, 150) 9 w.move(300, 300) 10 w.setWindowTitle('Simple') 11 w.show() 12
13 sys.exit(app.exec_())
至此PyQt5的開發環境就搭建完成了。從此以后,你可以使用Qt Designer設計程序窗口,將其編譯成python代碼引入到eclipse工程中,然后在eclipse中編寫響應事件輕輕松松完成桌面應用程序編寫。