pycharm中pyqt5使用方法_对中仪使用方法视频

pycharm中pyqt5使用方法_对中仪使用方法视频PyCharm中PyQt的使用方法一级目录二级目录三级目录一级目录二级目录三级目录

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

简单说明

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_())

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/175435.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm的安装选项_tomcat环境配置

    pycharm的安装选项_tomcat环境配置pycharm安装以及其环境的配置说明此次我们使用win10系统安装pycharm的64位社区版,并且对Anaconda3中自带的Python3进行环境的配置,如果您没有Anaconda3甚至是没有Python3环境,可以参考Anaconda3安装教程及说明,如果您的pip源未更改,这里推荐您改为使用国内的pip源,这样可以更快的下载组件,方法见修改pip源至国内镜像网站。教程从开始菜单中找到你的AnacondaPrompt并打开…

    2022年8月29日
    3
  • RTSP协议

    RTSP协议1、RTSP简介RTSP(RealTimeStreamingProtocol)是由RealNetwork和Netscape共同提出的如何有效地在IP网络上传输流媒体的应用层协议。RTSP对流

    2022年7月2日
    36
  • fault.java.lang_如何解决mapping exception to axisfault

    fault.java.lang_如何解决mapping exception to axisfault这个涉及到两个地方,action和JS:我一般是这样写的,小例子,希望能对你有用:action:publicActionForwardgetFiled(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{Strings…

    2025年11月5日
    5
  • json几种格式_json的格式

    json几种格式_json的格式JSON的三种格式一、JSON的全称JSON的全称是JavaScriptObjectNotation二、为什么需要JSONJSON有三种格式,每一种写法都和JS中的数据类型很像,可以很轻松的和JS中的数据类型互相转换三、JSON的三种格式(一)、简单值的形式:JSON的简单值的格式对应着JS中的基础数据类型:数字字符串布尔值注意事项:JSON中没有undefinedJSON中的字符串必须使用双引号JSON中是不能用注释的(二)、对象形式:对应着JS中的对象注意事项:

    2022年10月12日
    2
  • pychrome激活码2021_通用破解码

    pychrome激活码2021_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    64
  • Maven配置阿里云仓库下载依赖「建议收藏」

    Maven配置阿里云仓库下载依赖「建议收藏」用过Maven的都知道Maven的方便便捷,但由于某些网络原因,访问国外的Maven仓库不便捷,maven默认使用的是国外的中央仓库,下载jar时有时候会因为网络不好等原因下载不全或失败,好在国内像阿里云、网易、JBoos、开源中国等大厂搭建了国内的maven仓库,阿里云的maven仓库使用的比较多:需要使用的话,要在maven的settings.xml文件里配置mirrors的子节点,添加…

    2022年6月22日
    97

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号