PyQT5 图标(icon)无法显示问题

学习PyQT5 过程中遇到了设置图标,却无法显示的问题

以下是源码(采用的是一个英文PyQT5教程PyQT5学习):

import sys
import os
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon


class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('/images/cat.ico'))
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

输出结果中没有应有图标
输出结果

解决办法如下:

1.检查路径
因为构造QIcon对象可以使用绝对路径和相对路径,可以试着把路径改为绝对路径,如下:

self.setWindowIcon(QIcon("F:/Workspace/PyQT5-Study/images/cat.png"))

但是,这样做的后果就是程序的位置发生改变就需要修改,是很不方便的,所以可以采用第二种方式
2.获取根路径,动态构造

from PyQt5.QtCore import QFileInfo
...
def initUI(self):
   ...
   root = QFileInfo(__file__).absolutePath()
   self.setWindowIcon(QIcon(root+'/images/cat.png'))
   ...

执行成功后:
执行成功,显示图标
3.若到此仍无法显示已有图标,应该准确确认,该图片文件是否是一个合法的图标。
图像和图标之间是有比较大区别的
以下为网页摘录:
图像与图标的区别
图像与图标
所以,不是任意一张图片都能用来做图标,当然,你可以使用在线的图标生成工具,将图片转化为相应大小的图标(这里是32*32),即可使用,而且,对于图标的后缀名.ico、.png也尽量不要修改,否则也将无法使用。
最后送上猫猫!
喵喵喵

  • 17
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值