PyQt5设置软件窗口图标与任务栏图标

本文介绍了使用PyQt5设置软件窗口图标的方法。包括设置窗口左上角图标,通过setWindowIcon()方法,参数为Qicon;还提到桌面任务栏图标设置,目前查到的方法需调用win32库,只能在win平台使用,代码已放在Gitee仓库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PyQt5设置软件窗口图标

效果图

QQ截图20221025092928.png

设置窗口左上角图标

在UI界面初始化时加入这一行

self.setWindowIcon(QIcon("image/星球.png"))

setWindowIcon()方法继承自父类QMainWindow
参数为Qicon,查询QT官方手册(c++版的)Qicon参数可以为图片文件
参考链接https://doc.qt.io/qt-5/qicon.html#details
QQ截图20221025105530.png

桌面任务栏图标

上面方式设置完成程序图标之后桌面任务栏并没有同步显示
任务栏还是Python的图标
目前我查到的方式是这样设置(应该还有更好的方法,这种方法不能跨平台)
在UI界面初始化时加入这一段代码

if sys.platform == "win32":
    import ctypes
    ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("6666")

调用win32库来让图标显示,所以只能在win平台使用,
加个判断方式程序在其它平台运行时崩掉
后面应用程序ID可以随意填
为什么SetCurrentProcessExplicitAppUserModelID能让图表显示具体原理不清楚😭

代码

软件全部代码放在了Gitee
仓库链接

### 如何在 PyQt5设置任务栏图标 为了确保应用程序任务栏图标能够正常显示,在 PyQt5 应用程序中可以通过多种方式实现这一功能。 #### 使用 `setWindowIcon()` 方法 对于大多数情况而言,仅需调用 `setWindowIcon()` 即可完成操作。此方法接收一个 QIcon 对象作为参数,并将其应用于整个应用程序窗口及其子部件[^1]: ```python from PyQt5.QtWidgets import QApplication, QMainWindow import sys app = QApplication(sys.argv) main_window = QMainWindow() main_window.setWindowTitle('Example Application') main_window.setWindowIcon(QIcon('path/to/icon.png')) # 设置窗口图标同时也会影响任务栏图标 main_window.show() sys.exit(app.exec_()) ``` 然而,在某些操作系统环境下(如特定版本的 Windows),可能会遇到任务栏图标未能正确更新的情况。此时可能需要采取额外措施来强制刷新或重新注册应用程序图标[^4]。 #### 利用 `ctypes` 修改 AppUserModelID (针对 Windows 平台) 如果上述简单的方法无法解决问题,则可以尝试利用 Python 的内置模块 `ctypes` 来修改当前进程的应用模型 ID(AppUserModelID),这有助于解决一些特殊情况下任务栏图标未按预期显示的问题[^2]: ```python import ctypes myappid = 'your_company.your_product.subproduct.version' # 定义唯一的AppUserModelID字符串 ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) ``` 这段代码应该放置于创建主窗口之前执行,以便让更改生效并影响后续创建的所有窗口实例。 另外值得注意的是,当处理不同平台时应考虑兼容性问题;而对于 Linux 或 macOS 用户来说,通常不需要特别调整即可获得理想的效果[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kongbai_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值