You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide6开发Windows应用主窗口图标无法显示问题求助

PySide6主窗口图标无法显示问题解决

问题描述

学习Python4个月,用Qt Creator+PySide6开发简易应用,主窗口可正常启动,但设置主窗口图标始终无效。Windows10系统,所有项目文件为UTF-8编码,直接引用PNG或通过.qrc资源文件都无法显示图标。

当前代码

import sys

from PySide6.QtGui import QIcon, QPixmap, Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget
import resources

from ui_mainwindow import UiKonDiphone

class MainWindow(QMainWindow, QWidget):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.ui = UiKonDiphone()
        self.ui.setupUi(self)
        icon = QIcon()
        icon.addPixmap(QPixmap(u":/icon/icons/main_icon_24.png"))
        self.setWindowIcon(icon)
        return
if __name__ == '__main__':

    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()

    sys.exit(app.exec_())

.qrc资源文件内容

<RCC>
    <qresource prefix="/icons">
        <file>icon/main_icon_24.png</file>
        <file>icon/pause_icon_98.png</file>
        <file>icon/record_icon_98.png</file>
    </qresource>
</RCC>

已尝试的无效方法

  • 使用self.setWindowIcon(QIcon())无效果
  • 在Qt Creator中直接添加图标无效
  • 修改UI类代码(存在缩进错误):
class UiKonDiphone(object):
    KonDiphone.setToolButtonStyle(Qt.ToolButtonFollowStyle)
        icon = QIcon()
        icon.addFile(u":/icons/icon/main_icon_24.png", QSize(), QIcon.Normal, QIcon.Off)
        KonDiphone.setProperty("Main_Icon", icon)

解决步骤

  1. 修正资源路径
    你的.qrc中prefix为/icons,文件路径是icon/main_icon_24.png,因此完整资源路径应为:/icons/icon/main_icon_24.png,当前代码中路径写成了:/icon/icons/main_icon_24.png(多了一个icon前缀),先修正路径。

  2. 确认资源文件已正确编译
    执行命令编译.qrc文件:

    pyside6-rcc resources.qrc -o resources.py
    

    确保生成的resources.py在项目根目录,且代码中import resources能正确导入。

  3. 适配Windows系统特性
    Windows下建议同时给应用和窗口设置图标,避免系统缓存问题:

    if __name__ == '__main__':
        app = QApplication(sys.argv)
        # 先给应用设置图标
        app_icon = QIcon(":/icons/icon/main_icon_24.png")
        app.setWindowIcon(app_icon)
        window = MainWindow()
        window.setWindowIcon(app_icon)
        window.show()
        sys.exit(app.exec_())
    

    若仍无效,尝试重启应用或清理Windows图标缓存。

  4. 检查图片有效性
    确保PNG图片格式正常,使用16x16、24x24、32x32等标准图标尺寸,避免非标准尺寸导致显示异常。

  5. 规范UI类修改
    不要修改Qt Creator自动生成的ui_mainwindow.py文件,图标设置逻辑统一放在主窗口类中,避免破坏自动生成的代码结构。

内容的提问来源于stack exchange,提问作者Kontekstor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:47:37