PyQT5 - MAC OS - 为单个窗口标题栏设置不同的图标

时间:2017-06-23 22:45:15

标签: macos user-interface pyqt5

我使用python3使用GUI构建PyQT5程序。所有窗口都有黑色图标,但我希望单个图标有一个蓝色图标。这该怎么做?这是我的代码:

import sys

from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QWidget


class BlackWindow(QWidget):

    def __init__(self):
        super().__init__()
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Window with black icon')
        self.show()


class BlueWindow(QWidget):

    def __init__(self):
        super().__init__()
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Window with blue icon')
        self.setWindowIcon(QtGui.QIcon('./blue-icon.png'))  # this has no effect!!
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon('./black-icon.png'))

    black_window_first = BlackWindow()
    black_window_second = BlackWindow()
    black_window_third = BlackWindow()
    blue_window_first = BlueWindow()

    sys.exit(app.exec_())

看起来QWidget的{​​{1}}方法无效。这是为什么?可能有任何解决方法吗?我正在使用MacOS El Capitan。

1 个答案:

答案 0 :(得分:0)

您的代码适用于Ubuntu。您可以尝试将应用程序设置为蓝色图标以确保其有效。

当我为蓝色图标添加无效路径时,我得到默认路径,而不是黑色图标。

这里不是问题,但是如果给孩子一个无效的图标,我发现略有不同的代码会使用父窗口的图标。