Windows环境下利用PyQt5进行GUI程序的快速开发1——Pycharm的配置

邮差的信 提交于 2020-01-10 00:16:20

【推荐】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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!