本章目錄
- Part Ⅰ:環(huán)境搭建
- Part Ⅱ:第一個(gè)程序
由于工作需要伟件,需要設(shè)計(jì)個(gè)桌面程序濒憋,所以起了學(xué)習(xí)PyQt的念頭弛说。
這里一邊梳理下學(xué)到的內(nèi)容容客,一邊也貼一些在使用過程中遇到的坑郊尝。
環(huán)境概述:
- Win10操作系統(tǒng)
- Python3.8.10
- PyCharm
Part Ⅰ:環(huán)境搭建
- 安裝PyQt5
打開PyCharm下方的terminal二跋,在里面輸入
pip install pyqt5 -i https://pypi.douban.com/simple
: 測試下markdown的注釋
其中,-i后面的https://pypi.douban.com/simple為國內(nèi)豆瓣源地址虚循,可大幅度提高下載速度同欠,僅限本次安裝,永久方式可自行百度横缔。
- ImportError: DLL load failed報(bào)錯(cuò)處理
如果使用PyCharm的venv虛擬環(huán)境铺遂,運(yùn)行pyqt項(xiàng)目會(huì)報(bào)錯(cuò)
ImportError: DLL load failed while importing QtWidgets: 找不到指定的模塊。
這是因?yàn)樘摂M環(huán)境缺少一個(gè)python3.dll文件茎刚,可以在terminal里輸入
where python
找到安裝目錄下的python3.dll襟锐,并將其拷貝的項(xiàng)目venv虛擬環(huán)境下的Scripts目錄即可解決該錯(cuò)誤。
Part Ⅱ:第一個(gè)程序
環(huán)境搭建完畢后膛锭,可以寫個(gè)簡單的代碼慶祝下
import sys
from PyQt5.QtWidgets import QApplication, QLabel
if __name__ == "__main__":
app = QApplication(sys.argv) # 初始化一個(gè)GUI程序的控制流和管理流
label = QLabel("Hello World!") # 初始化一個(gè)文本控件并設(shè)置文本顯示內(nèi)容
label.show() # 設(shè)置控件顯示
sys.exit(app.exec()) # 等待app結(jié)束后退出程序
程序運(yùn)行結(jié)果如下:
- QApplication:
QApplication 繼承 QGuiApplication粮坞,而 QGuiApplication 繼承 QCoreApplication。這三者的區(qū)別為:
- QApplication:基于Widget的GUI初狰,也就是常用的控件莫杈,比如文本、按鈕之類的
- QGuiApplication:不限于Widget的GUI奢入,暫時(shí)用不上筝闹。
- QCoreApplication:不基于GUI的程序,暫時(shí)也用不上腥光。
需注意的是关顷,一個(gè)程序只能有一個(gè)QApplication對(duì)象,也就是單例模式武福。
- QLabel
文本控件议双,下節(jié)一起說說常用用法,暫時(shí)先記住即可捉片。 - app.exec()
app.exec()的作用就是進(jìn)入程序的主循環(huán)直到exit()被調(diào)用平痰,也就是說從此處開始打開GUI窗口并阻塞汞舱,show()函數(shù)并不是顯示,點(diǎn)擊彈出窗口的關(guān)閉按鈕后宗雇,返回一個(gè)整數(shù)給sys.exit兵拢,正式推出程序。