学习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也尽量不要修改,否则也将无法使用。
最后送上猫猫!