2017-03-04 175 views
5
from PyQt5 import QtWidgets, QtGui 
from PyQt5.QtWidgets import * 
from PyQt5.QtCore import * 

class Application(QMainWindow): 
    def __init__(self): 
     super(Application, self).__init__() 
     self.setWindowIcon(QtGui.QIcon('icon.png')) 

我想设置一个窗口图标(窗口左上角),但正常的图标消失了。如何用PyQt5设置窗口图标?

我尝试了许多图标分辨率(8x8,16x16,32x32,64x64)和扩展名(.png和.ico)。

我在做什么错?

+0

使用绝对路径。 – ekhumoro

+0

谢谢,但它不起作用。我试着用self.setWindowIcon(QtGui.QIcon('C:/Users/John/PycharmProjects/pythonproject/icon.png'))。另外,我必须在导入中添加QtGui才能获得QIcon。我甚至不确定这是用PyQt5做的好方法。 – HumanAfterAll

+0

如果您将图标添加到一个按钮? PS:QtGui.QImageReader.supportedImageFormats()是什么输出? – ekhumoro

回答

1

答案是由提问者(隐形图标)给出的。我想补充说脚本可能不会在脚本目录中执行。在任何情况下,为了安全起见,你可能希望确保相对于该脚本所在的目录的图标被加载:由提问者的建议

import os 
# [...] 
scriptDir = os.path.dirname(os.path.realpath(__file__)) 
self.setWindowIcon(QtGui.QIcon(scriptDir + os.path.sep + 'logo.png')) 
1

命令,工作对我来说:

self.setWindowIcon(QtGui.QIcon('icon.png')) 

我把256x256 png和一切都OK。我有Win 7 pro 64位,Python 3.5.2 32位。