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

如何在Python 3.11中用Tkinter/CustomTkinter 5.2设置PNG为GUI窗口图标?

解决CustomTkinter窗口设置PNG图标的问题

核心方案:借助Pillow转换PNG格式,配合iconphoto()方法设置

Tkinter原生的iconbitmap()仅支持Windows的.ico格式,要设置PNG图标,需用Pillow处理图片后通过iconphoto()实现,CustomTkinter完全兼容此方法。

  1. 安装依赖库
    先确保安装Pillow(处理图片格式转换):

    pip install pillow
    
  2. 完整实现代码
    替换代码中的your_icon.png为实际图片路径,注意保留图片对象引用避免被垃圾回收:

    import customtkinter as ctk
    from PIL import Image, ImageTk
    
    # 初始化CustomTkinter环境
    ctk.set_appearance_mode("System")
    ctk.set_default_color_theme("blue")
    
    # 创建主窗口
    app = ctk.CTk()
    app.title("PNG Icon Demo")
    
    # 加载并转换PNG图片
    try:
        icon_img = Image.open("your_icon.png")
        tk_icon = ImageTk.PhotoImage(icon_img)
        # 设置窗口图标
        app.iconphoto(True, tk_icon)
        # 保留引用,防止图片被Python垃圾回收机制清理
        app._icon_ref = tk_icon
    except FileNotFoundError:
        print("错误:未找到指定的PNG图片文件")
    
    app.mainloop()
    

关键注意事项

  • 路径正确性:使用相对路径时,确保PNG文件与脚本在同一目录;或直接使用绝对路径(如C:/icons/my_icon.png)
  • 引用保留:必须将ImageTk.PhotoImage对象赋值给窗口的一个属性(如app._icon_ref),否则对象会被回收,图标无法显示
  • 平台适配:
    • Windows:上述代码直接生效
    • Linux:建议使用尺寸为16x16/32x32/64x64的PNG图片,部分桌面环境对图标尺寸有要求
    • macOS:窗口图标可通过此方法设置,但应用dock图标需在打包时额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:42:36