Python深度學習實戰(zhàn)PyQt5安裝與環(huán)境配置過程詳解
1. PyQt5 圖形界面開發(fā)工具
1.1 從 CLI 到 GUI
CLI
:命令行用戶接口,Command Line User Interface。
GUI
:圖形用戶界面,Graphical User Interface。
1.2 PyQt5 開發(fā)工具
Qt 庫是跨平臺的 C++ 庫的集合,是最強大的 GUI 庫之一,可以實現(xiàn)高級 API 來訪問桌面和移動系統(tǒng)的各種服務。
PyQt5 是一套 Python 綁定 Digia QT5 應用的框架。PyQt5 實現(xiàn)了一個 Python模塊集,有 620 個類,6000 個函數(shù)和方法。
PyQt5 的優(yōu)點:簡單好用,功能強大, 跨平臺支持,文檔齊全,穩(wěn)定性高,生態(tài)支持,開源免費。
2. 安裝 PyQt5 和 QtTools
pip 安裝 PyQt5
pip install pyqt5 -i https://mirrors.aliuyun.com/pypi/simple
安裝了 PyQt5 就可以用 Python 語言編寫 Qt 程序。
確實可以,網(wǎng)上有很多相關(guān)的教程,我也學習和編寫了幾個這樣的 GUI。
例如,可以用一個簡單的例程,檢測 PyQt5 的安裝是否成功。
# GUIdemo1.py # Demo1 of GUI by PqYt5 # Copyright 2021 Youcans, XUPT # Crated:2021-10-06 from PyQt5 import QtWidgets import sys if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) # 初始化界面 MainWindow = QtWidgets.QWidget() # 生成一個主窗口 MainWindow.show() # 顯示主窗口 sys.exit(app.exec_()) # 在主線程中退出
運行程序 GUIdemo1,將彈出如下的圖形界面:
pip 安裝 QtTools
雖然安裝 PyQt5 就可以編程實現(xiàn) GUI,但是學習、編程、調(diào)試、修改都是相當復雜和繁瑣的。而 Qt Designer 基本是通過人機交互的排版方式進行界面設計,非常方便、直觀。所以我在使用 Qt Designer 圖形界面設計工具之后,就再也不愿意編寫 Python 程序來實現(xiàn) GUI 了。
Qt Tools 包含了兩個重要的工具:
- 圖形界面設計工具 Qt Designer,用于設計圖形界面,生成 .ui文件,以 xml 格式存儲界面和控件的屬性;
- UI 文件轉(zhuǎn)換工具 PyUic,用于將 .ui 文件解析為 .py 文件的工具。
Qt Tools 工具可以直接使用 pip 方式安裝:
pip install pyqt5-tools -i https://mirrors.aliuyun.com/pypi/simple
3. QtDesigner 和 PyUIC 的環(huán)境配置
使用 PyCharm 集成開發(fā)工具的小白,在安裝 QtTools 庫以后,還要對 QtDesigner 和 PyUIC 進行環(huán)境配置,將其集成到 PyCharm 中。
3.1 在 PyCharm 添加 Create Tools
運行 PyCharm;
從頂部菜單欄選擇:File -> Settings,彈出 Seetings 窗口;
從左側(cè)菜單欄中選擇:Tools -> ExternalTools,在右側(cè)點擊 “+” 彈出 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 打開配置窗口,從右側(cè)上方 “Python Interpreter:” 選項框找到 python.exe 的路徑。
- Arguments:填寫"-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py”
- Working directory:填寫將 .ui 文件轉(zhuǎn)換為 .py 文件的保存路徑例如,要將 .py 文件保存在當前 Project 的路徑下,則填寫 “$ProjectFileDir$”;要將 .py 文件保存在當前 Project 路徑下的 \program 子目錄中,則填寫 “$ProjectFileDir$\program”。
填好 CreateTool 窗口后,點擊 “OK” 即可完成 QtDesigner 工具的添加。
安裝和環(huán)境配置完成。
4. QtDesigner 和 PyUIC 的快速入門
使用 QtDesigner 開發(fā) PyQt5 圖形界面的基本步驟是:
(1)使用圖形界面設計工具 QtDesigner 進行圖形界面設計,生成 .ui 文件;
(2)使用 UI 轉(zhuǎn)換工具 PyUIC 將 .ui 文件轉(zhuǎn)換為 .py 文件;
(3)編寫一個 Python 應用程序調(diào)用 .py 界面文件,就可以實現(xiàn) Python 平臺的 GUI 編程。
雖然這些步驟看起來有些羅嗦,其實是非常簡單方便的。下面我們用一個簡單的例程詳細講解每一個步驟的操作。
4.1 QtDesigner 的啟動和入門
(1)- 運行 PyCharm,打開建立的 Python Project,例如 Project 為 PyqtDemo。
(2)- 從頂部菜單欄選擇:Tools -> ExternalTools -> QtDesigner,彈出如下的 QtDesigner 運行窗口。
(3)- 新建窗體
首次運行 QtDesigner 時可能會自動彈出 “新建窗體” 對話框,也可以通過菜單欄選擇:“文件 -> 新建” 或快捷鍵 “Ctrl+N” 喚起 “新建窗體” 對話框。
在 “新建窗體” 窗口的左側(cè)菜單選擇 “MainWindow” 新建一個圖形窗口。
(4)- 設計圖形界面
QtDesigner 的使用界面與 AutoCAD 等設計軟件類似,很好上手。
主界面分左中右三部分,左側(cè)是各種備選的控件對象,右側(cè)上方的 “對象查看器” 顯示控件的樹狀結(jié)構(gòu),右側(cè)下方的 “屬性編輯器” 顯示控件的各種屬性,中間部分用于顯示所設計的界面。
新建的窗口 “MainWindow” 雖然是一個空白的圖形窗口,但已經(jīng)生成了 centralwidget、menubar、statusbar 三個基本控件,可以在右側(cè)上方 “對象查看器” 查看這些控件及結(jié)構(gòu)。
下面我們?yōu)樾陆ǖ膱D形窗口添加幾個圖形控件:
新建一個按鈕控件:
從左側(cè)控件欄的 Button 中選擇 PushButton 按鈕,鼠標左鍵點中 PushButton 按鈕不放,移動鼠標將 PushButton 按鈕拖動到中間的新建圖形窗口內(nèi)的任意位置,松開鼠標左鍵,就在圖形窗口位置生成了一個 PushButton 按鈕對象。
鼠標左鍵點擊圖形窗口中的這個 PushButton 按鈕對象,拖動按鈕可以調(diào)整控件的位置,對于其它控件也可以通過鼠標拖動來調(diào)整位置。
鼠標選中 PushButton 按鈕對象,控件周圍的邊界位置上就出現(xiàn) 8個藍色的點,表示控件被選中,這時可以在右側(cè)的 “屬性編輯器” 內(nèi)對對象的屬性進行編輯和修改,例如:
- 將 PushButton 對象的高度修改為 120,寬度修改為 40;
- 將 PushButton 對象的 “QAbstractButton->text” 修改為 “測試按鈕”;
新建一個文本顯示框控件:
從左側(cè)控件欄的 InputWidget 中選擇 TextEdit 按鈕,鼠標左鍵選中 TextEdit 按鈕拖動到新建圖形窗口內(nèi)的,松開鼠標左鍵就在圖形窗口生成了一個 TextEdit 對象。
鼠標選中 TextEdit 對象,在右側(cè)的 “屬性編輯器” 內(nèi)可以對對象的屬性進行編輯和修改,例如:
- 將 TextEdit 對象的高度修改為 300,寬度修改為 200;
- 對于 TextEdit 對象的顯示內(nèi)容可以用 html、markdown 等格式編輯,也可以鼠標雙擊 TextEdit 對象喚出 html 編輯對話框,輸入希望顯示的內(nèi)容。
現(xiàn)在,我們就已經(jīng)用 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 文件顯示在左側(cè) Project -> PyqtDemo -> program 顯示框中。
如果該 .ui 文件沒有顯示,說明環(huán)境變量路徑設置不同,可以重新設置,也可以在保存 .ui 文件時另存到當前 Project 路徑下的 \program 子目錄中。
(2)- 鼠標選中 .ui 文件,點擊鼠標右鍵喚出下拉菜單,選擇:ExternalTools -> PyUIC,點擊鼠標左鍵運行,PyUIC 將選中的 .ui 文件轉(zhuǎn)換為 .py 文件,在該路徑生成 uiDemo1.py 文件。
4.3 編寫 Python 應用程序調(diào)用圖形界面
我們編寫一個主程序調(diào)用設計的圖形界面 uiDemo1.py,就可以完成一個圖形界面應用程序。
# GUIdemo2.py # Demo2 of GUI by PqYt5 # Copyright 2021 Youcans, XUPT # Crated:2021-10-06 from PyQt5.QtWidgets import QApplication, QMainWindow import sys import uiDemo1 if __name__ == '__main__': app = QApplication(sys.argv) # 創(chuàng)建應用程序?qū)ο? MainWindow = QMainWindow() # 創(chuàng)建主窗口 ui = uiDemo1.Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() # 顯示主窗口 sys.exit(app.exec_()) # 在主線程中退出
在主程序 GUIdemo2.py 中,我們通過 “import uiDemo1” 導入了 圖形界面 uiDemo1.py。
運行程序 GUIdemo2,將彈出如下的圖形界面:
如果你能得到這個圖形界面,就說明 Pyqt5 和 QtTools 已經(jīng)安裝成功、配置正確了。
不過,GUIdemo2 中的按鈕和點擊之后并沒有任何反應,這是因為我們還沒有設置這些控件所觸發(fā)的動作和應用。
在以后的程序中,我們將不斷增加和豐富這個圖形界面應用程序。
以上就是Python深度學習實戰(zhàn)PyQt5安裝與環(huán)境配置過程詳解的詳細內(nèi)容,更多關(guān)于PyQt5的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
深入理解Python虛擬機中整型(int)的實現(xiàn)原理及源碼剖析
在本篇文章當中主要給大家介紹在 cpython 內(nèi)部是如何實現(xiàn)整型數(shù)據(jù) int 的,主要是分析 int 類型的表示方式,分析 int 類型的巧妙設計2023-03-03python MultipartEncoder傳輸zip文件實例
這篇文章主要介紹了python MultipartEncoder傳輸zip文件實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04echarts折線圖的每個折點都顯示數(shù)值的實現(xiàn)方式
這篇文章主要介紹了echarts折線圖的每個折點都顯示數(shù)值的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10Python數(shù)據(jù)類型之Tuple元組實例詳解
這篇文章主要介紹了Python數(shù)據(jù)類型之Tuple元組,結(jié)合實例形式分析了Python元組類型的概念、定義、讀取、連接、判斷等常見操作技巧與相關(guān)注意事項,需要的朋友可以參考下2019-05-05Python使用keras和tensorflow遇到的問題及解決
這篇文章主要介紹了Python使用keras和tensorflow遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03