PyCharm安裝PyQt5及其工具(Qt Designer、PyUIC、PyRcc)詳細教學

2020-10-08 13:00:20

首頁圖
摘要:Qt是常用的使用者介面設計工具,而在Python中則使用PyQt這一工具包,它是Python程式語言和Qt庫的成功融合。這篇博文通過圖文詳細介紹在PyCharm中如何完整優雅地安裝設定PyQt5的所有工具包,主要內容包括 P y Q t 5 \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{Q}\color{#4285f4}{t}\color{#34a853}{5} PyQt5 P y Q t 5 \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{Q}\color{#4285f4}{t}\color{#34a853}{5} PyQt5- t o o l s \color{#4285f4}{t}\color{#ea4335}{o}\color{#fbbc05}{o}\color{#4285f4}{l}\color{#34a853}{s} tools的依賴包安裝和 Q t \color{#4285f4}{Q}\color{#ea4335}{t} Qt D e s i g n e r \color{#4285f4}{D}\color{#ea4335}{e}\color{#fbbc05}{s}\color{#4285f4}{i}\color{#34a853}{g}\color{#ea4335}{n}\color{#fbbc05}{e}\color{#4285f4}{r} Designer P y U I C \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{U}\color{#4285f4}{I}\color{#34a853}{C} PyUIC P y R c c \color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{R}\color{#4285f4}{c}\color{#34a853}{c} PyRcc三個工具的設定。最後簡單演示了PyQt5的呼叫方式及三個工具的使用方法,其目錄如下:

➷點選跳轉至主要安裝步驟介紹部分☇


前言

    很多情況下需要為程式設計一個GUI介面,在Python中使用較多的使用者介面設計工具是PyQt。由於通常我們使用較多的IDEPyCharm,為了方便地使用PyQt進行使用者介面設計,這裡總結了在PyCharm安裝設定的簡單安裝方法。可能有人還不清楚這幾個工具的用途,這裡對要安裝設定的依賴包和工具簡介如下:

PyQt5PyQt5是一套Python繫結Digia QT5應用的框架。Qt庫是最強大的GUI庫之一,PyQt5做為Python的一個模組,它有620多個類和6000個函數和方法。這是一個跨平臺的工具包,它可以執行在所有主要的作業系統,包括UNIXWindowsMac OSPyQt5是雙重許可。開發者可以在GPL和商業許可之間進行選擇,詳細可存取PyQt5的官方網站。——PyQt5中文教學
PyQt5-toolsPyQt5中沒有提供常用的Qt工具,比如圖形介面開發工具Qt DesignerPyQt5-tools中包含了一系列常用工具。——PyQt5工具檔案
Qt Designer:可以通過Qt Designer來編寫UI介面,Qt Designer的設計符合MVC的架構,其實現了檢視和邏輯的分離,從而實現了開發的便捷。Qt Designer中的操作方式十分靈活,其通過拖拽的方式放置控制元件可以隨時檢視控制元件效果。Qt DesignerPyQt5-tools包一起安裝,其安裝路徑在 「Python安裝路徑\Lib\site-packages\pyqt5-tools」下。——PyQt5速成教學
PyUICQt Designer生成的.ui檔案(實質上是XML格式的檔案)可以通過pyuic5工具轉換成.py檔案。——PyQt5速成教學
PyRcc:在使用PyQt開發介面時,在Qt Designer中使用的圖片等資源需要將其編譯為py檔案,這時需要用到PyRcc工具方便地將qrc檔案轉換為py檔案。——PyQt5安裝教學

    作者本人已經進行設定測試了多臺Windows 10電腦,特通過本教學將安裝設定過程展現給大家,本教學持續更新,如果你有更好的方法或問題,歡迎大家留言。


1. 工具包安裝

    對於一個新建立的Python環境,首先需要安裝PyQt的相關工具包,因為是Python的依賴包所有可以通過pip進行安裝,由於我們在PyCharm中進行程式設計,這裡我們可以通過PyCharm中的環境管理介面進行安裝。對於新建的專案test,其檔案介面如下圖(點選可放大檢視)所示:

初始項目
一、點選選單欄「File」,選擇彈出的「Setting」選項,如下圖(點選可放大檢視)所示:

環境配置1
二、選擇「Project」,選擇彈出的「Project Interpreter」選項,點選可看到當前已安裝的環境和依賴包,如下圖(點選可放大檢視)所示,點選右側「加號」按鈕可新增新的依賴包:

目前安裝的依賴包介面

PyQt5

三、可以看出當前尚未安裝pyqt5的依賴包,點選「加號」按鈕彈出安裝介面如下圖(點選可放大檢視)所示,在搜尋方塊輸入「PyQt5」可以搜尋到對應的依賴包,點選「Install Package」按鈕進行安裝(綠色框處可選擇安裝版本),等待安裝完成:

安裝pyqt5

PyQt5-tools

四、同樣地安裝PyQt5-tools工具包,在搜尋方塊中輸入「PyQt5-tools」,選中要安裝的依賴包,點選「Install Package」進行安裝,如下圖中所示的步驟所示:

pyqt5-tools安裝過程
五、這兩個工具包安裝完成,返回上一介面可以看到依賴包管理介面中出現了這兩個依賴包,如下圖所示:

安裝完成介面
    至此PyQt的工具包安裝完成,在編輯器或命令列可以通過「import PyQt5」呼叫該庫。這裡確定一下安裝位置,正常情況下這兩個包的安裝位置在Python的安裝目錄下的「\Lib\site-packages\」目錄,如我這裡的兩個安裝位置如下圖所示(我這裡Python為虛擬環境,安裝位置在「E:\test\venv」):

安裝位置


2. 設計工具設定

    依賴包安裝完成,接下來介紹如何在PyCharm中新增工具,其實這幾個工具在安裝PyQt5-tools的時候已經包括在目錄中,只不過要在PyCharm中方便使用還需要一些設定步驟。首先為了保證Windows系統能夠正確識別PyQt5-tools的常見命令,還需要將PyQt5-tools的安裝目錄新增到系統環境變數Path中。

環境變數設定

一、在檔案管理器中右擊「我的電腦」,彈出快捷選單,選擇「屬性」→「高階系統設定」彈出系統屬性對話方塊,如下圖所示:

配置系統變數
二、選擇「高階」,點選下面的「環境變數」,彈出環境變數設定框,選擇系統變數中的「Path」變數,如下圖所示:

環境變數
三、雙擊「Path」環境變數,進入環境變數編輯介面,點選「編輯」在最後新增pyqt5-tools的安裝位置,點選確定,如下圖所示:

新增path環境變數
這一步也可以選擇「瀏覽」,通過資料夾選擇對話方塊選中pyqt5-tools的安裝位置,其安裝路徑在 「Python安裝路徑\Lib\site-packages\pyqt5-tools」(需根據實際情況進行修改),如下圖(點選放大圖片)所示:

瀏覽選擇安裝位置
三、在環境變數介面中點選「新建」,在系統環境變數中新建名為「QT_PLUGIN_PATH」的變數,如下圖所示:

創建變數
該變數值為Qt外掛的安裝位置,可通過「瀏覽目錄」依次找到「plugins」資料夾,通常其位置在「Python安裝路徑\Lib\site-packages\PyQt5\Qt\plugins\」位置(需根據實際情況修改),點選「確定」,如下圖所示:

變數位置
    環境變數設定完成,接下來介紹在PyCharm中設定Qt工具,主要包括Qt DesignerPyUICPyRcc這三個工具,前言中已介紹其作用,下面依次介紹工具設定過程。

Qt Designer

一、點選選單欄「File」,彈出下拉框,選擇「Setting」,彈出設定介面。在設定介面中選擇「Tools」→「External Tools」,該部分操作如下圖所示:

新增工具
點選「加號」按鈕新建工具,彈出工具設定介面:在「Name」一欄填寫「Qt-Designer」;在「Program」一欄填寫designer.exe檔案位置,我這裡位置為:「E:\test\venv\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe」(需根據實際情況填寫);在「Working directory」一欄填寫「$FileDir$」。最後點選「OK」,如下圖所示:

Designer配置
二、點選選單欄「Tools」,彈出下拉框,選擇「External Tools」,彈出工具選擇框。選擇「Qt-Designer」並點選,若出現Qt Designer的軟體介面則表示設定成功,當然也可能出現如下的問題框:

運行Qt-Designer
若出現以上問題,解決方案是將pyqt5_tools\Qt\plugins資料夾進行復制,覆蓋到site-packages\pyqt5_tools\Qt\bin目錄下,覆蓋後的資料夾如下:

覆蓋資料夾
以上操作後,再次按照步驟二的操作即可開啟Qt Designer軟體介面。

PyUIC

一、同樣按照以上方式新增PyUIC工具,點選「加號」按鈕,在彈出的編輯設定框中Name一欄填寫「PyUIC」;

二、Program中填寫pyuic5.exe這個程式的檔案路徑,一般在「Python環境目錄\Scripts\pyuic5.exe」(此處需根據實際情況修改),也可以點選右側的資料夾選擇按鈕瀏覽資料夾選中該位置;

PyUIC配置

三、在Arguments中內容填寫如下:

$FileName$
-o
$FileNameWithoutExtension$.py

四、Working directory內容填寫如下:

$FileDir$

五、完成填寫後,點選「OK」,以上步驟參考圖片中的步驟。

PyRcc

一、PyRcc工具的設定方式與PyUIC相似,同樣在「External Tools」設定中點選「加號」按鈕,在設定框中「Name」一欄填寫「PyRcc」;

PyRcc配置
二、Program中填寫pyrcc5.exe這個程式的檔案路徑,一般在「Python環境目錄\Scripts\pyrcc5.exe」(此處需根據實際情況修改),也可以點選右側的資料夾選擇按鈕瀏覽資料夾選中該位置;

三、在Arguments中內容填寫如下:

$FileName$
-o
$FileNameWithoutExtension$_rc.py

四、Working directory內容填寫如下:

$FileDir$

五、完成填寫後,點選「OK」,以上步驟參考圖片中的步驟。


3. 使用演示

    依賴包和工具安裝設定完成,下面簡單演示一下如何使用。首先開啟或新建一個Python專案,點選選單欄中的「Tools」,選擇「External Tools」,可以看到之前設定好的三個工具,選擇「Qt Designer」開啟Qt設計工具,步驟如下圖所示:

開啟工具
    開啟軟體後,在彈出的引導介面選擇「Main Window」,然後點選「Create」按鈕,建立一個表單介面,如下圖所示:

在這裡插入圖片描述
    在軟體介面左側的控制元件選擇欄中拖動三個「Push Button」到中間的設計框中,雙擊按鈕依次修改顯示字元,如下圖所示:

在這裡插入圖片描述
    在軟體介面左側的控制元件選擇欄中拖動兩個「Label」控制元件到中間的設計框中,如下圖所示:

拖動圖片

    如下圖所示,點選「Resource Browser」下的鉛筆圖表,彈出新建qrc檔案的編輯框。

新建qrc檔案
    如下圖所示,點選新建(1號標註)按鈕新建一個qrc檔案,建立qrc檔案後點選新增檔案(2號標註),向qrc資原始檔中新增兩張圖片,最後點選「OK」確定。

新增檔案
    選中新增進來的label表單,在右側屬性編輯列中的「text」屬性中「pixmap」一欄選擇「Choose Resource」,如下圖所示:

選擇資源
    在資源選擇框中選擇剛剛新增進qrc的圖片,點選確定,對另一個label也進行同樣的操作,如下圖所示:

在這裡插入圖片描述
    最終完成後的介面如下圖所示,點選選單欄「File」下「Save」將該介面儲存為ui檔案並置於專案目錄下。

最終介面
    在PyCharm中選中儲存的ui檔案,使用「Tools」下的「External Tools」中的「PyUIC」工具將該檔案轉換為需要的py檔案。

在這裡插入圖片描述
    在PyCharm中選中儲存的qrc檔案,使用「Tools」下的「External Tools」中的「PyRcc」工具將該資原始檔轉換為需要的py檔案。

在這裡插入圖片描述
    在PyCharm中開啟使用「PyUIC」工具轉換的py檔案,在下面新增如下程式碼:

if __name__ == '__main__':
    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    import pics_ui_rc # 匯入新增的資源(根據實際情況填寫檔名)
    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

    在PyCharm中點選執行該檔案,最終執行介面如下所示:

運行介面


結束語

    因為本博文主要介紹安裝步驟,關於PyQt的設計博文中介紹較簡單,更加詳細的講解將在後面的教學中介紹。由於博主能力有限,博文中提及的方法即使經過試驗,也難免會有疏漏之處。希望您能熱心指出其中的錯誤,以便下次修改時能以一個更完美更嚴謹的樣子,呈現在大家面前。同時如果有更好的實現方法也請您不吝賜教。