Window 图标不显示

Window icon does not show

我学习这个教程http://zetcode.com/gui/pyqt5/firstprograms/ 并在此处编码。

import sys
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('web.png'))        

        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())  

我可以显示 Window 图标吗?我使用 PyQt5、Python3.4 和 Linuxmint 17.2 cinnamon.

检查图标文件的位置。它应该放在您的案例的执行目录中。您可以通过以下更改检查执行目录:

if __name__ == '__main__':
    import os
    print("Work dir:" + os.getcwd())

    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())  

尝试PySide.QtGui.QApplication.setWindowIcon(icon)。像这样:

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

我不确定,你期望的是什么: windowicon 显示为 applicationIcon(例如,在 ubuntu gnome 上,请在后台查看我的代码)

If no icon has been set, windowIcon() returns the application icon

(QApplication::windowIcon()).

http://doc.qt.io/qt-5/qwidget.html#windowIcon-prop

在 ubuntu 上看起来是这样的:

所以我认为,代码工作正常

我遇到了完全相同的问题。

要事第一。实际上,QWidget 或QMainWindow 类 下没有setWindowIcon() 方法。您应该尝试在应用程序级别设置 QIcon,如下所示。

app = QApplication(sys.argv)
app.setWindowIcon(QtGui.QIcon('home.png'))

其次,使用此代码创建的图标不会反映在 window 的标题上,而是会反映为应用程序图标,如下图所示。 home.png

Application icon in Mac not the Window Icon

最后,路径无所谓,可以是绝对路径也可以是相对路径,系统会考虑。