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

如何修改Python EasyGUI程序的任务栏图标(PyInstaller打包场景)

解决EasyGUI任务栏图标修改问题

由于EasyGUI基于Tkinter,任务栏显示的是其底层Tkinter窗口的图标,而非你通过PyInstaller设置的exe文件图标。你可以通过直接操作EasyGUI关联的Tkinter根窗口来修改任务栏图标,具体步骤如下:

方法1:直接修改EasyGUI的默认根窗口

在调用任何EasyGUI弹窗函数前,获取它的默认Tkinter根窗口并设置图标:

import easygui

# 获取EasyGUI的主Tk窗口实例
root = easygui.root

# 设置窗口图标(Windows下使用.ico格式,Linux/macOS可适配.png等格式)
root.iconbitmap("custom_icon.ico")

# 后续正常调用EasyGUI组件
easygui.msgbox("已替换任务栏图标")

方法2:自定义Tk根窗口并关联EasyGUI

如果上述方法不生效,可手动创建Tk根窗口、设置图标后,让EasyGUI复用该窗口:

import easygui
import tkinter as tk
import sys
import os

def get_resource_path(relative_path):
    """处理打包前后的资源路径兼容"""
    try:
        # PyInstaller打包后会生成临时路径,通过sys._MEIPASS访问
        base_path = sys._MEIPASS
    except Exception:
        # 开发阶段使用当前脚本所在路径
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

# 创建并隐藏Tk主窗口(EasyGUI会基于此窗口创建弹窗)
root = tk.Tk()
root.withdraw()

# 加载并设置图标
icon_path = get_resource_path("custom_icon.ico")
root.iconbitmap(icon_path)

# 将自定义窗口关联到EasyGUI
easygui.root = root

# 测试弹窗
easygui.msgbox("任务栏图标已更新")

打包注意事项

用PyInstaller打包时,需确保图标文件被正确包含:

  • Windows平台:使用pyinstaller --add-data "custom_icon.ico;." your_script.py
  • Linux/macOS平台:使用pyinstaller --add-data "custom_icon.ico:." your_script.py

这样打包后,程序运行时就能正确加载自定义图标,替换EasyGUI默认的蓝色羽毛图标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 19:47:19