PyCharm中PyQt的使用方法

简单说明

PyQt是Python与Qt的融合,做为Python的一个模块使用,有很多工具包。且Qt Designer可以快速的搭建应用程序的前台界面、类似Visual Studio的拖放操作,且可以配合PyCharm使用,让Python的开发效率更上一层楼。

本文范例软件

本文的前提是安装好了PyCharm以及Python(以下是范例中使用的版本)

  • PyCharm Community Edition 2020.2.1 x64
  • Python 3.7.0 x32

安装PyQt及相关软件

pip install pyqt5
pip install pyqt5-tools
pip install pyqt5-stubs

如果慢的话可以改用清华及其它的镜像地址

pip install 安装包 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple

PyCharm中设定:QtDesigner

完成后在PyCharm中设定QtDesigner以及PyUIC

  • QtDesigner
    在这里插入图片描述

Name、Program、Working directory分别填入

#名称方便调用
QtDesigner   
#你的designer文件地址
C:\Python\Python37-32\Lib\site-packages\qt5_applications\Qt\bin\designer.exe 
#项目文件夹下ui文件夹内
$ProjectFileDir$\ui

PyCharm中设定: PyUIC (模块方式)

PyUIC这里有两种方式
一,以模块方式调用pyuci
在这里插入图片描述
Name、Program、 Arguments、Working directory分别填入

PyUIC
#python.exe位置
C:\Python\Python37-32\python.exe
#以模块方式调用pyuic将ui文件转换成py
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$_designed.py
#当前ui同目录下
$FileDir$

PyCharm中设定: PyUIC (直接使用)

PyUIC
#pyuic5.exe位置
C:\Python\Python37-32\Scripts\pyuic5.exe
#将ui文件转换成py、加了_designed在生成文件名后,用于区别
$FileName$ -o $FileNameWithoutExtension$_designed.py
#当前ui同目录下
$FileDir$

PyCharm中设定: PyRCC

什么是pyrcc?在Qt Designer中新增的资源文件名为qrc、将qrc转换成py用于程序使用,这就需要用到pyrcc5程序,配置如下
在这里插入图片描述
Name、Program、 Arguments、Working directory分别填入
(Description是描述:这里我是qrc to py)

PyRCC
C:\Python\Python37-32\Scripts\pyrcc5.exe
# 由于ui生成的py如果带有资源文件会默认  <资源文件名_rc的方式>  所以这里直接将生成_rc的文件名
$FileName$ -o $FileNameWithoutExtension$_rc.py
$FileDir$

在Qt Designer中新增资源文件

点击最左边的新建、增加前缀(虚拟目录)、并添加文件这里是ico
在这里插入图片描述
选择复制

在这里插入图片描述
资源保存后为myqrc.qrc文件名、这里将窗体的图标设定完保存ui文件,用之前的PyUIC转换ui 到 py
打开文件后发现、myqrc_rc
在这里插入图片描述
选中myqrc.qrc点击PyRCC、这也是在转换代码中加入rc的作用

在这里插入图片描述

总结一下


PyUIC是将设计界面的ui文件转换成py

如果还附带相关资源(ico、图片等等)、将产生qrc文件、PyRCC就是将qrc也转换成py文件的工具

最后程序调用:界面程序(ui转换的py)+资源程序(qrc转换的py)

配置完PyCharm

在这里插入图片描述

Tools中已经有快捷方式

在这里插入图片描述

打开Qt Designer则可以创建窗口,拖拽各种需要的控件

在这里插入图片描述

保存的地址便是上面加ui的文件夹

在这里插入图片描述

Qt Desinger中创建一个简单的界面

  • 新建一个按钮并改名、并修改窗口标题为mytest

在这里插入图片描述

保存为test.ui选中并且点选PyUIC、生成test_designed.py

在这里插入图片描述

A.如何使用这个生成的py文件呢? 直接使用

# 引用的模块
import sys
from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(110, 110, 181, 71))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "mytest"))
        self.pushButton.setText(_translate("Dialog", "测试一下"))


# 下面是新加的内容
if __name__ == "__main__":
    mypro = QtWidgets.QApplication(sys.argv)
    mywin = QtWidgets.QMainWindow()
    thisui = Ui_Dialog()
    thisui.setupUi(mywin)
    mywin.show()
    sys.exit(mypro.exec_())

除了import sys以及最后新加的代码,中间都没有变动

运行后如下图效果

在这里插入图片描述

代码有两处告警提示

一.删除未引用到的模块即可
在这里插入图片描述

二.Instance attribute pushButton defined outside init (提示在init之外定义实例变量、此处是程序自动生成的代码,此处定义并无不妥)

在这里插入图片描述
当然你也可以消除这个提示、选中Suppress for statement

在这里插入图片描述
会在代码前加一段# noinspection PyAttributeOutsideInit (注解)、此时消除了所有错误

在这里插入图片描述

B.如何使用这个生成的py文件呢? 继承方式

import sys
# test_designed是文件名
import test_designed
from PyQt5 import QtWidgets


class RunTest(test_designed.Ui_Dialog):
    def __init__(self, myinherit):
        test_designed.Ui_Dialog.setupUi(self, myinherit)


if __name__ == "__main__":
    mypro = QtWidgets.QApplication(sys.argv)
    mywin = QtWidgets.QMainWindow()
    RunTest(mywin)
    mywin.show()
    sys.exit(mypro.exec_())

引用中错误的处理方式

在这里插入图片描述

右键在文件所属的文件夹中、选中Sources Root

在这里插入图片描述

文件夹将变色(灰色–淡蓝色)、并且错误消失

在这里插入图片描述

选择Suppress for statement也可消除提示

在这里插入图片描述

题外话、修正自动生成的代码

原ui生成的py代码test_designed.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'test.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(110, 110, 181, 71))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "mytest"))
        self.pushButton.setText(_translate("Dialog", "测试一下"))

test_designed.py改成

from PyQt5 import QtCore, QtWidgets


class Ui_Dialog(object):
    def __init__(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(110, 110, 181, 71))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "mytest"))
        self.pushButton.setText(_translate("Dialog", "测试一下"))

则引用的文件修正为using_test_designed.py

import sys
# noinspection PyUnresolvedReferences
import test_designed
from PyQt5 import QtWidgets


class RunTest(test_designed.Ui_Dialog):
    def __init__(self, myinherit):
        test_designed.Ui_Dialog.__init__(self, myinherit)
        # 上下两段代码有相同的效果
        # super(RunTest, self).__init__(myinherit)


if __name__ == "__main__":
    mypro = QtWidgets.QApplication(sys.argv)
    mywin = QtWidgets.QMainWindow()
    RunTest(mywin)
    mywin.show()
    sys.exit(mypro.exec_())

### 回答1: 关于在PyCharm安装和使用PyQt5,可以按照以下步骤进行操作: 1. 下载并安装PyQt5包,可以通过pip在命令行使用以下语句进行安装: ```python pip install PyQt5 ``` 2. 打开PyCharm,在项目导入PyQt5包。 3. 创建PyQt5应用程序,比如: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget app = QApplication(sys.argv) # 创建一个窗口 widget = QWidget() widget.setWindowTitle('PyQt5') widget.show() sys.exit(app.exec_()) ``` 4. 运行代码,在PyCharm会弹出一个窗口,表示PyQt5应用程序已经启动成功。 希望这些步骤能够帮助你安装和使用PyQt5。 ### 回答2: PyCharm是一款功能强大的Python集成开发环境(IDE),拥有丰富的功能和工具,使我们能够更加高效地编写Python代码。在PyCharm使用PyQt5进行Python GUI开发也是很方便的。 如果你想在PyCharm使用PyQt5进行Python GUI开发,需要进行以下步骤: 1. 安装PyQt5 在PyCharm使用PyQt5需要先安装它。可以在命令行使用pip安装,命令如下: ``` pip install PyQt5 ``` 2. 创建PyQt5项目 在PyCharm,我们可以使用“New Project”或“New Module”来创建一个新的PyQt5项目,并选择需要的解释器。在PyCharm创建一个PyQt5项目与创建其他Python项目的方法相同。 3. 编写PyQt5代码 在PyCharm,我们可以在类似的Python文件编写PyQt5代码。PyQt5的API在PyCharm有很好的代码提示和自动补全功能,这样我们就可以更加高效地编写PyQt5代码。 以下是一个基本的PyQt5窗体应用程序: ``` import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__main__': app = QApplication(sys.argv) widget = QWidget() widget.resize(250, 150) widget.setWindowTitle('PyQt5') widget.show() sys.exit(app.exec_()) ``` 在此应用程序,我们使用PyQt5创建了一个窗口,并设置了其大小和标题。最后,我们使用app.exec_()方法运行我们的应用程序。 4. 运行PyQt5应用程序 在PyCharm,我们可以直接单击“Run”按钮运行我们的PyQt5应用程序。此外,我们还可以在命令行输入以下命令运行我们的PyQt5应用程序: ``` python <file_name>.py ``` 以上就是在PyCharm使用PyQt5进行Python GUI开发的基本步骤。当然,我们还可以使用其他的PyQt5工具和插件来丰富我们的开发体验,例如Qt Designer和Qt Creator。无论如何,PyCharm是一个非常强大的IDE,为Python GUI开发提供了强大的支持。 ### 回答3: PyCharm是一款适用于Python开发者的IDE集成开发环境,它提供了非常方便的编码和调试功能。同时,PyQt5是一种开发图形化用户界面的Python框架。在PyCharm,如果想要使用PyQt5,我们需要进行安装和配置,下面是详细的步骤: 1. 安装PyQt5 打开PyCharm IDE,进入到“File”->“Settings”->“Project Interpreter”界面,然后选择对应的Python版本。接着在下面的搜索框输入“pyqt5”,通过搜索到的内容来安装包。点击右下角的“Install Package”按钮即可完成安装。 2. 配置PyQt5 安装完成后,我们需要配置PyQt5。在PyCharm的菜单栏,选择“Run”->“Edit Configurations”->“Environment variables”,然后添加如下两个环境变量: QT_PLUGIN_PATH = /usr/lib/x86_64-linux-gnu/qt5/plugins/ QT_QPA_PLATFORM_PLUGIN_PATH = /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/ 注:以上路径示例是在Linux下的路径,对于不同的操作系统,路径可能会有所不同,需要根据实际情况进行指定。 3. 使用PyQt5 安装和配置完毕后,我们就可以在PyCharm使用PyQt5来开发图形化用户界面了。我们需要导入PyQt5的模块,例如: from PyQt5.QtWidgets import QApplication, QWidget 可以通过创建一个QWidgeet子类来实现用户界面的布局,例如: class MyWidget(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 220) self.setWindowTitle('Hello PyQT5') self.show() 我们还可以通过信号和槽机制来实现用户界面的交互,例如: btn.clicked.connect(self.btnClicked) def btnClicked(self): QMessageBox.information(self, "Message", "Button clicked.") 通过以上的步骤,我们就可以在PyCharm安装和使用PyQt5来开发图形化的Python应用程序了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值