環境配置
安裝PyQt5
使用pip進行安裝,使用Pycharm時,更加簡單,直接搜索便可。
除了pyqt5,還有pyqt5-tools,包含一些pyqt5經常使用的工具。python
pip install pyqt5 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com pip install pyqt5-tools -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
設置Qt Designerapp
安裝完pyqt5-tools以後,就能夠設置Qt Designer了,這樣咱們經過拖拽就能快速實現界面的繪製了。
Settings-Tools-External Tools裏添加Qt Designer,
Program裏選擇designer.exe的路徑,完整路徑爲D:\Python\Python37\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
Working directory選擇Insert Macros,選擇File - directory
示例:工具
此時,Qt Designer就已經添加完成,咱們能夠在Tools-External Tools裏,看到剛纔添加的工具,其餘添加的工具也都在這裏能夠使用。
設置PyUICui
咱們剛纔使用Qt Designer設計的界面實際上是一個後綴名爲ui的xml文件,Python代碼還沒法直接使用,須要使用PyUIC將ui文件轉換爲py代碼。
PyUIC設置與Qt Designer大同小異,主要將Program換成PyUIC路徑,完整路徑爲D:\Python\Python37\python.exe。
這裏有所區別的時,須要在Parameters寫入傳給PyUIC的參數,咱們這裏添加參數-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py。
Working directory選擇Insert Macros,選擇File - directory
示例:this
設置Pyrcc
若是在Qt Designer中使用了qrc資源文件,而沒有將其轉換爲py文件就會出錯:import error no module named resource_rc
這是由於使用了qrc資源文件後,用pyuic轉換ui文件到py文件時會import resource_rc,而沒有這個文件,全部要先將相關的qrc文件轉換一下,並放在pyUIC生成的py文件同一文件夾下。
這裏將將Program換成Pyrcc路徑,完整路徑爲D:\Python\Python37.net
shi\Scripts\pyrcc5.exe。
在Parameters寫入傳給Pyrcc的參數,咱們這裏添加參數$FileName$ -o $FileNameWithoutAllExtensions$_rc.py
Working directory選擇Insert Macros,選擇File - directory設計
使用:3d
在工做目錄(C:\Users\15305\PycharmProjects\py3\PyDataDemo>)下運行qt designercode
生成pyqt5btn1.ui()orm
右擊pyqt5btn1.ui運用PyUIC工具會生成pyqt5btn1.py
在pyqt5btn1.py最後面加上下面代碼
if __name__=="__main__": app = QtWidgets.QApplication(sys.argv) main = QtWidgets.QDialog() #必須建立主對話框QDialog content = Ui_Dialog() #建立對話框 content.setupUi(main) #將對話框依附於主窗體 main.show() #顯示 sys.exit(app.exec_())
完整代碼:(pyqt5btn1.py)
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'pyqt5btn1.ui' # # Created by: PyQt5 UI code generator 5.13.0 # # WARNING! All changes made in this file will be lost! import sys from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(400, 300) self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32)) self.buttonBox.setOrientation(QtCore.Qt.Horizontal) self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") self.retranslateUi(Dialog) self.buttonBox.accepted.connect(Dialog.accept) self.buttonBox.rejected.connect(Dialog.reject) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) if __name__=="__main__": app = QtWidgets.QApplication(sys.argv) main = QtWidgets.QDialog() #必須建立主對話框QDialog content = Ui_Dialog() #建立對話框 content.setupUi(main) #將對話框依附於主窗體 main.show() #顯示 sys.exit(app.exec_())
運行pyqt5btn1.py
參考: