关于python tkinter打包并修改左上角图标的方法

在Windows上使用Python的tkinter开发应用程序时,打包成exe后可能出现图标无法显示的问题。这是因为ico文件无法被正确找到。解决方法包括将图标转为ico格式,然后通过编写make_icon.py生成icon.py,将图标内容以base64编码写入。在主程序中,解码ig变量并创建临时ico文件用于设置程序图标,最后打包时确保icon.py和主程序在同一路径下,使用pyinstaller进行打包。

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

使用python在windows开发tkinter程序打包时想改变默认的图片,经常会在打包成exe可执行文件后,无法正常打开(原因是找不到对应的ico文件),本人也是在网上找了很长时间,且试错了很多次,才总结到了下面这种方式。,希望能帮你解决问题。

首先,找到你想要做成图片的图片,把他改成 ico格式(网上能找到在线转换的工具),然后

代码如下:

1、用程序写一个make_icon.py文件,来生成icon.py文件

内容为定义一个类Icon 写一个初始化方法 def __init__(self):

import base64
with open("icon.py", "w") as f:
    f.write('class Icon(object):\n')
    f.write('\tdef __init__(self):\n')
    f.write("\t\tself.ig='")

# 2、将图标.ico打开,把它读取后转化为base64字节流,存放到icon.py文件中的ig变量内。(这里其实是拼接到最后)

path = "图标.ico"

with open(path, "rb") as i:
    b64str = base64.b64encode(i.read())
with open("icon.py", "ab+") as f:
        f.write(b64str)
with open("icon.py", "a") as f:
    f.write("'")

以上程序运行,会生成一个 icon.py的文件,后续打包和脚本放一个目录下。内容如下

3、打开你写好的调用tkinter的py文件,调用读取该icon文件的ig内容:

import icon
icon1 = icon.Icon
4、获取改ig变量的内容
icc = icon1().ig
with open('tmp.ico', 'wb') as tmp:
    tmp.write(base64.b64decode(icc))
5、创建一个临时ico图标给程序使用
root.iconbitmap('tmp.ico')
6、最后删除该文件
os.remove('tmp.ico')

最后用pyinstaller打包

注意:icon.py和test.py要放置到同一个路径下,然后进行打包

打包完成后左上角的图片就会改变

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值