一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

PythonpyQt5適于新手上路(第一篇環(huán)境和配置)

 山峰云繞 2021-01-05

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演示


可以看到這個樸實無華的工具效果圖……
雖然很簡陋,但是我需要的基本功能還是實現(xiàn)了。demo的內(nèi)容大致包含:事件的觸發(fā)、文件讀取寫出、進(jìn)度條異步線程和信號等等,作為第一個gui項目內(nèi)容應(yīng)該足夠了,業(yè)務(wù)邏輯的代碼根據(jù)功能不同也可以隨意替換,算是邁出了第一步

1.1 注意事項

這篇博客可能適合以下老哥閱讀:

  • 有一些python基礎(chǔ)

  • 會裝python環(huán)境和第三方庫安裝

  • 基本沒使用過或者不太懂pyQt5開發(fā)

就像題目所說的那樣,這篇博客是類似于新手教程的東西,雖然寫的是從零開始,但是不打算過多介紹關(guān)于環(huán)境和軟件安裝的相關(guān)問題(這方面的教程確實太多了)。另外如果你已經(jīng)是python或pyqt的老手了,我不確定我寫的東西會不會對你有用,當(dāng)然也歡迎留下意見

2. 準(zhǔn)備工作

2.1 關(guān)于環(huán)境

  • Python:Python 3.7.9 Anaconda 環(huán)境

  • windows 10

  • IDE: Pycharm

  • PyQT5 + QtDesigner

2.2 安裝pyqt庫

2.2.1 新建虛擬環(huán)境(已經(jīng)有python環(huán)境了跳過此步驟)

以管理員身份運行Anaconda Navigator,進(jìn)入CMD Prompt


輸入下面的命令創(chuàng)建一個python3.7版本的虛擬環(huán)境,環(huán)境名為pygui。這里的pygui可以更改

conda create -n pygui python=3.71

出現(xiàn)如下界面輸入y繼續(xù)安裝,即可成功安裝


安裝完成后輸入下面的語句檢查環(huán)境是否安裝成功

conda env list1

如圖所示,名為pygui已經(jīng)成功安裝


輸入下面的語句激活pygui環(huán)境(可以理解為切換到pygui環(huán)境下)

activate pygui1

如圖所示,當(dāng)前環(huán)境由base切換到pygui虛擬環(huán)境


至此,新建虛擬環(huán)境就算是成功了。這部分與博客內(nèi)容無關(guān),因此不過多贅述

2.2.2 安裝pyqt的包

注:如果是非Anaconda環(huán)境把下文中出現(xiàn)的conda xxx命令替換為pip xxx
使用命令安裝PyQt5

pip install PyQt51

下圖為正在安裝的界面,如有Proceed輸入y。安裝的速度取決與網(wǎng)速和源,我用的清華源也超時了好幾次,多試幾次如果依然超時建議更換源或者設(shè)置超時時間


安裝完成后輸入下面的命令檢查包的安裝情況

conda list1

應(yīng)該有下圖中的包


python 3.5以上版本安裝成功后還需安裝pyqt5-tools

pip install pyqt5-tools1

安裝成功后虛擬環(huán)境的庫如下圖所示(這里根據(jù)版本不同,包的數(shù)量和名稱可能會略有區(qū)別,只要安裝成功了一般不影響后面使用)


啟動Qtdesigner,直接輸入designer命令即可啟動Qt設(shè)計師

designer1

如下圖所示,如果無法啟動則說明安裝有問題。啟動成功后先不要關(guān)閉命令窗口,后面編譯ui文件還會用到

2.2.3 使用designer新建demo

創(chuàng)建MainWinodw 界面基本結(jié)構(gòu)如圖所示


在組件菜單里選擇Label拖動到畫布里
雙擊Label組件進(jìn)入編輯模式
輸入文本信息按回車就編輯成功了
Ctrl + S重命名并保存到桌面


現(xiàn)在桌面上應(yīng)該有一個.ui類型的文件了,下一步需要將ui文件編譯為py文件。
打開之前的命令窗口,使用cd命令切換到ui文件所在的目錄下,我這里是桌面
使用下面的命令編譯ui文件。注意這里export.ui是我剛才保存的ui文件,如果文件名不是export.ui需要自行替換,export.py是將要生成的py文件,建議設(shè)置為與ui文件相同的名稱

pyuic5 -o export.py export.ui1

執(zhí)行成功后當(dāng)前目錄下應(yīng)該有一個py文件了,如下圖所示


如果上面的步驟出現(xiàn)錯誤大概率是pyqt包安裝問題

2.3 在pycharm中配置環(huán)境和pyqt插件

1. 關(guān)于環(huán)境,使用不同的IDE則需要不同的步驟,只要能讓項目在新建的pygui環(huán)境下運行就行
2. pyqt的插件僅僅是方便在pycharm中使用pyqt的功能,使用命令也能達(dá)到相同的效果

2.3.1 新建項目使用虛擬環(huán)境

啟動pycharm ——> New Project 操作步驟如下圖所示


在環(huán)境選擇界面選擇conda虛擬環(huán)境


創(chuàng)建

2.3.2 配置qt插件

項目創(chuàng)建完畢后開始配置qt插件
點擊File ——> Setting
在彈出界面中選擇 Tools下的 External Tools 進(jìn)行配置,如下圖所示


在彈出的界面中進(jìn)行如下配置,此為Designer配置


配置如下

Name: QtDesignerGroup: QtProgram: xxxxx\xxxxxx\designer.exeWorking Directory: $ProjectFileDir$1234

這里重點說一下第三步
Program填寫designer.exe的絕對路徑,這里的路徑因人而異,如果跟我一樣是使用Anaconda創(chuàng)建的虛擬環(huán)境那么路徑應(yīng)該跟下面這條路徑類似

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,如果無法打開則說明配置有誤,如下


配置Pyuic,如法炮制


配置如下

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文件,如下圖所示


注意:一定要選中了ui文件再運行PyUic

2.3.3 運行項目

py文件已經(jīng)能夠編譯出來,接下來就是運行了。
打開我們剛剛編譯好的export.py會發(fā)現(xiàn)里面沒有程序入口的代碼,這是因為PyUic只會生成在designer中定義的東西,所以還需要加入程序入口的代碼。
這里我建議另起一個main.py作為程序入口和業(yè)務(wù)邏輯的實現(xiàn),這樣就可以實現(xiàn)UI和業(yè)務(wù)邏輯分離,否則一旦修改了UI重新生成就會將之前的py文件全部覆蓋,十分不友好
所以我們新建main.py 加入程序入口相關(guān)的代碼
我的main.py代碼如下
注意:xxxxx為剛才生成的py文件名稱,我這里是export,根據(jù)情況替換

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思想。
現(xiàn)在我們終于可以運行這個qt項目了,直接運行main.py文件應(yīng)當(dāng)能看到之前新建的ui界面,如圖所示

over

至此,需要的準(zhǔn)備工作就結(jié)束了,下一篇開始寫詳細(xì)的工具制作流程

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美国产在线观看精品| 粉嫩一区二区三区粉嫩视频| 噜噜中文字幕一区二区| 在线观看视频国产你懂的| 亚洲视频在线观看免费中文字幕 | 91国内视频一区二区三区| 搡老妇女老熟女一区二区| 加勒比东京热拍拍一区二区| 国产又大又猛又粗又长又爽| 久久精品久久精品中文字幕| 亚洲一区二区欧美激情| 黄色片国产一区二区三区| 丁香七月啪啪激情综合| 色好吊视频这里只有精| 国产精品午夜福利免费在线| 久久热九九这里只有精品| 欧美国产日本免费不卡| 日韩精品人妻少妇一区二区| 亚洲精品有码中文字幕在线观看| 青青操视频在线观看国产 | 黑人巨大精品欧美一区二区区| 日韩性生活视频免费在线观看| 婷婷色国产精品视频一区| 日本欧美一区二区三区高清| 亚洲熟女一区二区三四区| 日韩精品人妻少妇一区二区| 国产丝袜极品黑色高跟鞋| 免费在线观看激情小视频| 中文字幕日韩欧美一区| 精品人妻av区波多野结依| 成人免费视频免费观看| 国产欧美韩日一区二区三区| 91福利视频日本免费看看| 98精品永久免费视频| 五月天综合网五月天综合网| 深夜视频成人在线观看 | 青青久久亚洲婷婷中文网| 麻豆最新出品国产精品| 特黄大片性高水多欧美一级| 在线日本不卡一区二区| 亚洲中文在线男人的天堂|