pyinstaller 打包pyqt5 图标不显示问题

pyinstaller 打包pyqt5 图标不显示问题,第1张

pyqt5打包成exe,程序有图标,但是双击打开的窗口左上角没有显示小图标。

打包命令 : pyinstaller -F -w -i ico1ico mainpy

执行之后,exe程序有图标,双击打开没有图标

解决方法: 1创建imagesqrc文件 

在txt文件中写入

<RCC>

        <qresource prefix="/">

                <file>ico1ico</file>

         </qresource>

</RCC>

保存,修改文件后缀为qrc

2生成py文件,这个py文件把保存成二进制

pyrcc5 -o imagespy imagesqrc

3  导入模块

import images

MainWindowsetWindowIcon(QIcon(':/ico1ico'))

一般情况下,图标问题可以解决如果还是不行,将窗口的小图标格式修改问 png格式 ico1png 再执行以上步骤

注意exe的图标的格式问ico格式

有时我们展示了一个列表, 并想提供查看某项列表的详细内容, 我们会在列表项的末端加一个查看按钮, 这时我们如何在按按钮的时候得知这是那一项呢 这时就需要带参数的信号, 信号是可以带参数的, 参数会在信号发送时携带, 并传递给接收此信号的槽

from PyQt4 import QtGui, QtCore

class MyButton(QtGuiQPushButton):

myclicked = QtCorepyqtSignal(int)

def __init__(self, _id, args, kwargs):

QtGuiQPushButton__init__(self, args, kwargs)

self_id = _id

selfconnect(self, QtCoreSIGNAL("clicked()"), selfemitMyclicked)

def emitMyclicked(self):

selfmyclickedemit(self_id)

app = QtGuiQApplication([])

w = QtGuiQWidget()

wresize(100, 100)

def showMsg(_id):

QtGuiQMessageBoxinformation(w, u"信息", u"查看 %d" % _id)

btn = MyButton(1, u"查看1", w)

wconnect(btn, QtCoreSIGNAL("myclicked(int)"), showMsg)

btn2 = MyButton(2, u"查看2", w)

btn2move(0, 30)

wconnect(btn2, QtCoreSIGNAL("myclicked(int)"), showMsg)

wshow()

appexec_()

上面例子可以看出, QObjectemit 发送带参数的信号时要携带参数 当然上面例子也可以用下面方式来写

from PyQt4 import QtGui, QtCore

class MyButton(QtGuiQPushButton):

def __init__(self, _id, args, kwargs):

self_id = _id

QtGuiQPushButton__init__(self, args, kwargs)

selfconnect(self, QtCoreSIGNAL("clicked()"), selfemitClicked)

def emitClicked(self):

selfemit(QtCoreSIGNAL("myclicked(int)"), self_id)

app = QtGuiQApplication([])

w = QtGuiQWidget()

wresize(100, 100)

def showMsg(_id):

QtGuiQMessageBoxinformation(w, u"信息", u"查看 %d" % _id)

btn = MyButton(1, u"查看1", w)

wconnect(btn, QtCoreSIGNAL("myclicked(int)"), showMsg)

btn2 = MyButton(2, u"查看2", w)

btn2move(0, 30)

wconnect(btn2, QtCoreSIGNAL("myclicked(int)"), showMsg)

wshow()

appexec_()

1,打开windows 的cmd窗口,切换到python命令界面,确认pip3是否安装

2,联网,输入

pip3 install PyQt5

即可自动化下载安装,大小约80M,下载安装速度取决于网速。

3,测试安装正确

import PyQt5 没有报错即为安装成功。

也可做一个测试程序验证。

import sys

from PyQt5 import QtWidgets, QtCore

app = QtWidgetsQApplication(sysargv)

widget = QtWidgetsQWidget()

widgetresize(400, 100)

widgetsetWindowTitle("Hello World!")

widgetshow()

exit(appexec_())

《PyQt5快速开发与实战》百度网盘pdf最新全集下载:

afwb

简介:《PyQt5快速开发与实战》既是介绍PyQt 5的快速入门书籍,也是介绍PyQt 5实战应用的书籍。PyQt 5是对Qt所有类的Python封装,既可以利用Qt的强大功能,也可以利用Python丰富的生态圈,同时能够结合Python简洁的语法进行 *** 作,其结果就是使用PyQt 5可以高效、简单地开发出自己想要的程序。《PyQt5快速开发与实战》内容丰富,对PyQt 5基础知识的介绍比较全面,同时对新手使用PyQt 5的一些重点、难点都有专门的章节进行针对性分析,还重点介绍了如何把Python的一些重量级模块(Pandas、Matplotlib和Plotly)嵌入到PyQt 5中,从而极大地节约开发时间。最后,《PyQt5快速开发与实战》给出一些综合性较强的实战案例,帮助读者快速掌握PyQt 5的实战应用。  

使用Qt进行软件开发,不可避免要使用资源文件。本节我们做一个简单示例,通过使用Qt资源文件为应用程序及关闭按钮设置图标。

根据前面我们所讲述的内容,先创建PyCharm工程项目,然后创建Qt工程项目,在Qt工程项目中设计界面并创建资源文件。

界面中我们只放置一个“关闭”按钮,所以在此不做具体的描述。下面,我们创建资源文件。

在Qt Creator中选择“File” -> "New File or Project",然后选择“Qt”->"Qt Resource File",在File name中输入res,在项目中可以看到,我们创建了一个resqrc资源文件。

在资源文件上右击,选择”Open in Editor“即可打开资源文件编辑器。

在资源文件中首先需要创建一个前缀,名称可以根据具体的资源进行命名,我们在此处命名为:icons;然后单击”Add Files“,选择事先准备好的图标文件添加进来。

在按钮的属性编辑器中找到icon属性,点击下拉菜单中的”Choose Resource“,在对话框中选择对应的资源文件中的图标即可。

编译资源文件:

在PyCharm的工程项目中创建一个名为rccbat的批处理文件,其代码如下:

注意:编译资源文件时,生成的py文件名结尾必须是_rc,因为编译窗体文件后会产生如下语句:

编译窗体文件:

在PyCharm的工程项目中创建一个名为uicbat的批处理文件,其代码如下:

运行以上两个批处理文件,可以看到编译后的py文件已经生成。

执行程序后可以看到,界面中的关闭按钮显示了我们在Qt Creator中设置的图标。

引入图标类:

在主程序中app = QApplication(sysargv)语句后面增加设置图标的代码:

为”关闭“按钮添加单击事件代码:

运行程序即可看到应用程序的图标也可以显示了。

以上就是关于pyinstaller 打包pyqt5 图标不显示问题全部的内容,包括:pyinstaller 打包pyqt5 图标不显示问题、使用pyqt4写GUI小程序时一个clicked信号调用三次槽函数、如何使用pypi安装pyqt5等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9678382.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存