1

我正在尝试学习 PyQt。在阅读教程以获取基础知识时,我遇到了 QIcon 的问题。

下面的代码应该使用名为“web.png”的图像中的图标创建一个简单的窗口:

import os
import sys

import PyQt5

dirname = os.path.dirname(PyQt5.__file__)
plugin_path = os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path

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_())

但是,生成的窗口包含一个标准图标,而不是想要的图像: 错误的图标!

图像 web.png 包含在当前工作目录中。我将 Python 3.5.1 和 PyQt 5 与 Qt 5.6.2 一起使用。

任何帮助,将不胜感激。

4

2 回答 2

2

您应该改用绝对路径:

self.setWindowIcon(QIcon('c:/root_to_your_application/web.png'))

或者:

import pathlib
current_directory = str(pathlib.Path(__file__).parent.absolute())
path = current_directory + '/web.png'
self.setWindowIcon(QIcon(path))
于 2020-12-30T16:50:07.387 回答
0

您试图在错误的位置更改图标。我遇到了这个问题,这里是解决方案。

您必须更改“子窗口”的图标,只需查看上面的解决方案即可。

于 2016-11-01T20:22:27.677 回答