为什么在Mac上使用PyQt5无法添加图标?

ljy*_*ljy 3 python macos python-3.x 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')

        path = os.path.join(os.path.dirname(sys.modules[__name__].__file__), 'icon_1.png')
        self.setWindowIcon(QIcon(path))

        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

我也使用相对路径, self.setWindowIcon(QIcon('icon_1.png')) 我相信icon_1.png在目录中.但结果总是这样:

窗口和Dock中没有图标

那我在哪里弄错了?我是PyQt和StackOverflow以及英语的新手...希望帖子有效.

先感谢您.

小智 6

setWindowIcon是一种方法QApplication,而不是QWidget和朋友

以下是测试脚本的工作版本:

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

class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300,300,300,220)
        self.setWindowTitle('Icon')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    path = os.path.join(os.path.dirname(sys.modules[__name__].__file__), 'icon_1.png')
    app.setWindowIcon(QIcon(path))
    ex = Example()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)