1. 前言https://m.toutiao.com/is/JGSHc2X/ 博主是一名有幾年開發(fā)經(jīng)驗的Python社畜。網(wǎng)上關(guān)于pyQt5的資料實際上也不少,但大都是對某個具體問題的討論,比較零散。而我在寫代碼的過程中經(jīng)常遇到各種各樣的問題,這使得我經(jīng)常在數(shù)十個網(wǎng)站上查詢資料,很不友好。為此我決定寫這篇文章,詳細(xì)記錄一下從零到一的過程,也希望以此拋磚引玉,向大佬們學(xué)習(xí) 以下是demo演示
1.1 注意事項這篇博客可能適合以下老哥閱讀:
就像題目所說的那樣,這篇博客是類似于新手教程的東西,雖然寫的是從零開始,但是不打算過多介紹關(guān)于環(huán)境和軟件安裝的相關(guān)問題(這方面的教程確實太多了)。另外如果你已經(jīng)是python或pyqt的老手了,我不確定我寫的東西會不會對你有用,當(dāng)然也歡迎留下意見 2. 準(zhǔn)備工作2.1 關(guān)于環(huán)境
2.2 安裝pyqt庫2.2.1 新建虛擬環(huán)境(已經(jīng)有python環(huán)境了跳過此步驟)以管理員身份運行Anaconda Navigator,進(jìn)入CMD Prompt
conda create -n pygui python=3.71 出現(xiàn)如下界面輸入y繼續(xù)安裝,即可成功安裝
conda env list1 如圖所示,名為pygui已經(jīng)成功安裝
activate pygui1 如圖所示,當(dāng)前環(huán)境由base切換到pygui虛擬環(huán)境
2.2.2 安裝pyqt的包注:如果是非Anaconda環(huán)境把下文中出現(xiàn)的conda xxx命令替換為pip xxx pip install PyQt51 下圖為正在安裝的界面,如有Proceed輸入y。安裝的速度取決與網(wǎng)速和源,我用的清華源也超時了好幾次,多試幾次如果依然超時建議更換源或者設(shè)置超時時間
conda list1 應(yīng)該有下圖中的包
pip install pyqt5-tools1 安裝成功后虛擬環(huán)境的庫如下圖所示(這里根據(jù)版本不同,包的數(shù)量和名稱可能會略有區(qū)別,只要安裝成功了一般不影響后面使用)
designer1 如下圖所示,如果無法啟動則說明安裝有問題。啟動成功后先不要關(guān)閉命令窗口,后面編譯ui文件還會用到 2.2.3 使用designer新建demo創(chuàng)建MainWinodw 界面基本結(jié)構(gòu)如圖所示
![]()
pyuic5 -o export.py export.ui1 執(zhí)行成功后當(dāng)前目錄下應(yīng)該有一個py文件了,如下圖所示 ![]()
2.3 在pycharm中配置環(huán)境和pyqt插件1. 關(guān)于環(huán)境,使用不同的IDE則需要不同的步驟,只要能讓項目在新建的pygui環(huán)境下運行就行 2.3.1 新建項目使用虛擬環(huán)境啟動pycharm ——> New Project 操作步驟如下圖所示 ![]()
![]()
![]() 2.3.2 配置qt插件項目創(chuàng)建完畢后開始配置qt插件 ![]()
![]()
Name: QtDesignerGroup: QtProgram: xxxxx\xxxxxx\designer.exeWorking Directory: $ProjectFileDir$1234 這里重點說一下第三步 C:\ProgramData\Anaconda3\Library\bin\designer.exe1 如果是使用系統(tǒng)的python環(huán)境那么應(yīng)該類似于下面這條 C:\Users\xxxx\AppData\Local\Programs\Python\Python37\Lib\site-packages\pyqt5-tools\designer.exe1 配置完成后可在菜單欄 Tools ——> Qt ——> QtDesigner 打開designer,如果無法打開則說明配置有誤,如下 ![]()
![]()
Name: pyUICGroup: QtProgram: xxxxx\xxxxxx\pyuic5.exeArguments: $FileName$ -o $FileNameWithoutExtension$.pyWorking Directory: $FileDir$12345 同樣,這里的Program也需要根據(jù)自己的路徑修改,Anaconda環(huán)境類似于: C:\ProgramData\Anaconda3\envs\pygui\Scripts\pyuic5.exe1 如果是使用系統(tǒng)的python環(huán)境那么應(yīng)該類似于下面這條 C:\Users\xxxx\AppData\Local\Programs\Python\Python37\Scripts\pyuic5.exe1 配置完成后將之前我們生成的ui文件拷貝到項目中,選中ui文件,再使用菜單欄啟動pyuic5編譯ui文件,如下圖所示 ![]()
2.3.3 運行項目py文件已經(jīng)能夠編譯出來,接下來就是運行了。 import sysfrom PyQt5.QtWidgets import QApplication, QMainWindowimport xxxxxclass Example(QMainWindow): def __init__(self): self.app = QApplication(sys.argv) super().__init__() self.ui = xxxxx.Ui_MainWindow() self.ui.setupUi(self) # 初始化 self.init_ui() # ui初始化 def init_ui(self): # 初始化方法,這里可以寫按鈕綁定等的一些初始函數(shù) self.show()# 程序入口if __name__ == '__main__': e = Example() sys.exit(e.app.exec()) 在這里我新建了Example類,借由操作Example來操作export里的Ui_MainWindow對象,這樣做的目的是將業(yè)務(wù)邏輯和函數(shù)綁定相關(guān)工作全部交給Example,將UI、程序入口、業(yè)務(wù)邏輯完全分離,方便拓展,這樣也符合OOP思想。 ![]() over至此,需要的準(zhǔn)備工作就結(jié)束了,下一篇開始寫詳細(xì)的工具制作流程 |
|