【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
环境配置
安装PyQt5
使用pip进行安装,使用Pycharm时,更加简单,直接搜索即可。
除了pyqt5,还有pyqt5-tools,包含一些pyqt5常用的工具。
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 Designer
安装完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里,看到刚才添加的工具,其他添加的工具也都在这里可以使用。
设置PyUIC
我们刚才使用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
示例:
设置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
shi\Scripts\pyrcc5.exe。
在Parameters写入传给Pyrcc的参数,我们这里添加参数$FileName$ -o $FileNameWithoutAllExtensions$_rc.py
Working directory选择Insert Macros,选择File - directory
使用:
在工作目录(C:\Users\15305\PycharmProjects\py3\PyDataDemo>)下运行qt designer
生成pyqt5btn1.ui
右击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
来源:oschina
链接:https://my.oschina.net/u/2245781/blog/3155591