窗口图标不显示

时间:2016-02-08 14:44:26

标签: python pyqt window icons pyqt5

我学习本教程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_())  

我可以显示窗口图标吗?我使用PyQt5,Python3.4和Linuxmint 17.2肉桂。

This Window

4 个答案:

答案 0 :(得分:3)

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

enter image description here

  

如果未设置图标,windowIcon()将返回应用程序图标

     

(的QApplication :: windowIcon())。

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

在ubuntu上看起来像这样:

enter image description here

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

第一件事。实际上,在QWidget或QMainWindow类下没有setWindowIcon()方法。您应该尝试按以下方法在“应用程序”级别设置QIcon。

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

第二,使用此代码创建的图标不会反映在窗口标题上,而是将显示为应用程序图标,如下图所示。 home.png

Application icon in Mac not the Window Icon

最后,路径并不重要,它可以是绝对路径,也可以是相对路径,系统会考虑使用。

答案 3 :(得分:0)

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

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