Python 小白从零开始 PyQt5 项目实战(1)安装与环境配置
本系列面向 Python 小白,從零開始實戰解說應用 QtDesigner 進行 PyQt5 的項目實戰。
什么叫從零開始?從軟件安裝、環境配置開始。
不跳過一個細節,不漏掉一行代碼,不省略一個例圖。
歡迎關注『Python 小白從零開始 PyQt5 項目實戰 @ Youcans』系列,持續更新中
Python 小白從零開始 PyQt5 項目實戰(1)安裝與環境配置
Python 小白從零開始 PyQt5 項目實戰(2)菜單和工具欄
Python 小白從零開始 PyQt5 項目實戰(3)信號與槽的連接
1. PyQt5 圖形界面開發工具
1.1 從 CLI 到 GUI
CLI:命令行用戶接口,Command Line User Interface。
GUI:圖形用戶界面,Graphical User Interface。
1.2 PyQt5 開發工具
Qt 庫是跨平臺的 C++ 庫的集合,是最強大的 GUI 庫之一,可以實現高級 API 來訪問桌面和移動系統的各種服務。
PyQt5 是一套 Python 綁定 Digia QT5 應用的框架。PyQt5 實現了一個 Python模塊集,有 620 個類,6000 個函數和方法。
PyQt5 的優點:簡單好用,功能強大, 跨平臺支持,文檔齊全,穩定性高,生態支持,開源免費。
2. 安裝 PyQt5 和 QtTools
2.1 安裝 Anaconda3(略)
2.2 安裝 PyCharm,配置運行環境(略)
2.3 pip 安裝 PyQt5
pip install pyqt5 -i https://mirrors.aliuyun.com/pypi/simple安裝了 PyQt5 就可以用 Python 語言編寫 Qt 程序。
確實可以,網上有很多相關的教程,我也學習和編寫了幾個這樣的 GUI。
例如,可以用一個簡單的例程,檢測 PyQt5 的安裝是否成功。
運行程序 GUIdemo1,將彈出如下的圖形界面:
2.4 pip 安裝 QtTools
雖然安裝 PyQt5 就可以編程實現 GUI,但是學習、編程、調試、修改都是相當復雜和繁瑣的。而 Qt Designer 基本是通過人機交互的排版方式進行界面設計,非常方便、直觀。所以我在使用 Qt Designer 圖形界面設計工具之后,就再也不愿意編寫 Python 程序來實現 GUI 了。
Qt Tools 包含了兩個重要的工具:
- 圖形界面設計工具 Qt Designer,用于設計圖形界面,生成 .ui文件,以 xml 格式存儲界面和控件的屬性;
- UI 文件轉換工具 PyUic,用于將 .ui 文件解析為 .py 文件的工具。
Qt Tools 工具可以直接使用 pip 方式安裝:
pip install pyqt5-tools -i https://mirrors.aliuyun.com/pypi/simple3. QtDesigner 和 PyUIC 的環境配置
使用 PyCharm 集成開發工具的小白,在安裝 QtTools 庫以后,還要對 QtDesigner 和 PyUIC 進行環境配置,將其集成到 PyCharm 中。
3.1 在 PyCharm 添加 Create Tools
- 運行 PyCharm;
- 從頂部菜單欄選擇:File -> Settings,彈出 Seetings 窗口;
- 從左側菜單欄中選擇:Tools -> ExternalTools,在右側點擊 “+” 彈出 CreateTool 窗口;
3.2 添加 QtDesigner 工具
在 CreateTool 窗口依次填寫:
- Name:填寫 “QtDesigner”
- Program:填寫 designer.exe 的路徑,例如:
C:\Python\Anaconda3\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
注意:此處填寫剛才 pip 安裝的 pyqt5-tools 工具包的路徑。如果小白的 Python 或 Anaconda3 安裝在其他路徑下,則從對應的目錄找到 “qt5_applications\Qt\bin\designer.exe”,或者在資源管理器中搜索 “designer.exe” 文件找到安裝路徑。
- Arguments:不用填寫
- Working directory:填寫生成 UI 文件的保存路徑
例如,要將 .ui 文件保存在當前 Project 的路徑下,則填寫 “$ProjectFileDir$”;要將 .ui 文件保存在當前 Project 路徑下的 \program 子目錄中,則填寫 “$ProjectFileDir$\program”。
填好 CreateTool 窗口后,點擊 “OK” 即可完成 QtDesigner 工具的添加。
3.3 添加 PyUIC 工具
在 CreateTool 窗口依次填寫:
- Name:填寫 “PyUIC”
- Program:填寫 python.exe 的路徑,例如:
C:\Python\Anaconda3\python.exe
注意:此處填寫 IDE 使用的 Python Interpreter的路徑。如果小白的 Python 或 Anaconda3 安裝在其他路徑下,或者選擇其它路徑中的 python.exe 作為 Python Interpreter,可以從 Pycharm -> Settings -> Project -> Python Interpreter 打開配置窗口,從右側上方 “Python Interpreter:” 選項框找到 python.exe 的路徑。
- Arguments:填寫"-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py”
- Working directory:填寫將 .ui 文件轉換為 .py 文件的保存路徑
例如,要將 .py 文件保存在當前 Project 的路徑下,則填寫 “$ProjectFileDir$”;要將 .py 文件保存在當前 Project 路徑下的 \program 子目錄中,則填寫 “$ProjectFileDir$\program”。
填好 CreateTool 窗口后,點擊 “OK” 即可完成 QtDesigner 工具的添加。
安裝和環境配置完成。
4. QtDesigner 和 PyUIC 的快速入門
使用 QtDesigner 開發 PyQt5 圖形界面的基本步驟是:
(1)使用圖形界面設計工具 QtDesigner 進行圖形界面設計,生成 .ui 文件;
(2)使用 UI 轉換工具 PyUIC 將 .ui 文件轉換為 .py 文件;
(3)編寫一個 Python 應用程序調用 .py 界面文件,就可以實現 Python 平臺的 GUI 編程。
雖然這些步驟看起來有些羅嗦,其實是非常簡單方便的。下面我們用一個簡單的例程詳細講解每一個步驟的操作。
4.1 QtDesigner 的啟動和入門
(1)- 運行 PyCharm,打開建立的 Python Project,例如 Project 為 PyqtDemo。
(2)- 從頂部菜單欄選擇:Tools -> ExternalTools -> QtDesigner,彈出如下的 QtDesigner 運行窗口。
(3)- 新建窗體
首次運行 QtDesigner 時可能會自動彈出 “新建窗體” 對話框,也可以通過菜單欄選擇:“文件 -> 新建” 或快捷鍵 “Ctrl+N” 喚起 “新建窗體” 對話框。
在 “新建窗體” 窗口的左側菜單選擇 “MainWindow” 新建一個圖形窗口。
(4)- 設計圖形界面
QtDesigner 的使用界面與 AutoCAD 等設計軟件類似,很好上手。
主界面分左中右三部分,左側是各種備選的控件對象,右側上方的 “對象查看器” 顯示控件的樹狀結構,右側下方的 “屬性編輯器” 顯示控件的各種屬性,中間部分用于顯示所設計的界面。
新建的窗口 “MainWindow” 雖然是一個空白的圖形窗口,但已經生成了 centralwidget、menubar、statusbar 三個基本控件,可以在右側上方 “對象查看器” 查看這些控件及結構。
下面我們為新建的圖形窗口添加幾個圖形控件:
新建一個按鈕控件:
- 從左側控件欄的 Button 中選擇 PushButton 按鈕,鼠標左鍵點中 PushButton 按鈕不放,移動鼠標將 PushButton 按鈕拖動到中間的新建圖形窗口內的任意位置,松開鼠標左鍵,就在圖形窗口位置生成了一個 PushButton 按鈕對象。
- 鼠標左鍵點擊圖形窗口中的這個 PushButton 按鈕對象,拖動按鈕可以調整控件的位置,對于其它控件也可以通過鼠標拖動來調整位置。
- 鼠標選中 PushButton 按鈕對象,控件周圍的邊界位置上就出現 8個藍色的點,表示控件被選中,這時可以在右側的 “屬性編輯器” 內對對象的屬性進行編輯和修改,例如:
- 將 PushButton 對象的高度修改為 120,寬度修改為 40;
- 將 PushButton 對象的 “QAbstractButton->text” 修改為 “測試按鈕”;
新建一個文本顯示框控件:
- 從左側控件欄的 InputWidget 中選擇 TextEdit 按鈕,鼠標左鍵選中 TextEdit 按鈕拖動到新建圖形窗口內的,松開鼠標左鍵就在圖形窗口生成了一個 TextEdit 對象。
- 鼠標選中 TextEdit 對象,在右側的 “屬性編輯器” 內可以對對象的屬性進行編輯和修改,例如:
- 將 TextEdit 對象的高度修改為 300,寬度修改為 200;
- 對于 TextEdit 對象的顯示內容可以用 html、markdown 等格式編輯,也可以鼠標雙擊 TextEdit 對象喚出 html 編輯對話框,輸入希望顯示的內容。
現在,我們就已經用 QtDesigner 完成了一個基本的圖形界面。
(5)- 將設計的圖形界面保存為 .ui文件
保存文件就不贅述了,菜單、工具按鈕和快捷鍵都可以,例如保存為 uiDemo1.ui。
注意文件的保存路徑,默認保存在添加 QtDesigner 工具時 “Working directory” 所設置的路徑,當然也可以另存到其它路徑。
本文 3.2 添加 QtDesigner 工具 中 “Working directory” 填寫 “$ProjectFileDir$\program”,默認將 .ui 文件保存在當前 Project 路徑下的 \program 子目錄中。
本文的項目默認設置將 .py 文件也保存在當前 Project 路徑下的 \program 子目錄中,在應用程序編程時就可以直接導入圖形界面文件。
如果 PyChrm 或 QtDesigner 設置的文件保存路徑不同,要注意導入圖形界面文件時設置和使用正確的路徑。
4.2 PyUIC 的使用
(1)- 運行 PyCharm,打開 Python Project,剛才用 QtDesigner 建立的 uiDemo1.ui 文件顯示在左側 Project -> PyqtDemo -> program 顯示框中。
如果該 .ui 文件沒有顯示,說明環境變量路徑設置不同,可以重新設置,也可以在保存 .ui 文件時另存到當前 Project 路徑下的 \program 子目錄中。
(2)- 鼠標選中 .ui 文件,點擊鼠標右鍵喚出下拉菜單,選擇:ExternalTools -> PyUIC,點擊鼠標左鍵運行,PyUIC 將選中的 .ui 文件轉換為 .py 文件,在該路徑生成 uiDemo1.py 文件。
4.3 編寫 Python 應用程序調用圖形界面
我們編寫一個主程序調用設計的圖形界面 uiDemo1.py,就可以完成一個圖形界面應用程序。
# GUIdemo2.py # Demo2 of GUI by PqYt5 # Copyright 2021 Youcans, XUPT # Crated:2021-10-06from PyQt5.QtWidgets import QApplication, QMainWindow import sys import uiDemo1if __name__ == '__main__':app = QApplication(sys.argv) # 創建應用程序對象MainWindow = QMainWindow() # 創建主窗口ui = uiDemo1.Ui_MainWindow()ui.setupUi(MainWindow)MainWindow.show() # 顯示主窗口sys.exit(app.exec_()) # 在主線程中退出在主程序 GUIdemo2.py 中,我們通過 “import uiDemo1” 導入了 圖形界面 uiDemo1.py。
運行程序 GUIdemo2,將彈出如下的圖形界面:
如果你能得到這個圖形界面,就說明 Pyqt5 和 QtTools 已經安裝成功、配置正確了。
不過,GUIdemo2 中的按鈕和點擊之后并沒有任何反應,這是因為我們還沒有設置這些控件所觸發的動作和應用。
在以后的程序中,我們將不斷增加和豐富這個圖形界面應用程序。
【本節完】
版權聲明:
歡迎關注『Python 小白的 PyQt5 項目實戰 @ youcans』 原創作品
原創作品,轉載必須標注原文鏈接:https://blog.csdn.net/youcans/article/details/120640342
Copyright 2021 youcans, XUPT
Crated:2021-10-06
歡迎關注『Python 小白從零開始 PyQt5 項目實戰 @ Youcans』系列,持續更新中
Python 小白從零開始 PyQt5 項目實戰(1)安裝與環境配置
Python 小白從零開始 PyQt5 項目實戰(2)菜單和工具欄
Python 小白從零開始 PyQt5 項目實戰(3)信號與槽的連接
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Python 小白从零开始 PyQt5 项目实战(1)安装与环境配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OpenCV 例程 200篇】98.
- 下一篇: 【OpenCV 例程200篇】18. 图