环境配置
安装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
参考: