问题描述
使用pyinstaller打包tkinter项目后,运行exe文件,找不到tkinter左上角logo的路径,只有把logo.ico一起复制过来才能运行
所以接下来讲解 如何将tkinter的logo一起打包成exe
读取ico文件,转为base64格式
open_icon = open("music.ico", "rb") # cs.icon为你要放入的图标
b64str = base64.b64encode(open_icon.read()) # 二进制读出之后转为base64
open_icon.close()
将base64数据赋值变量写入到.py文件中
write_data = "img=%s" % b64str
f = open("logo.py", "w+") # 将base64格式的数据写到py文件中
f.write(write_data)
f.close()
base64转ico文件
tk设置图标前,打开一个ico文件,然后将刚才py文件中的base64数据写入进去
# 先打开一个文件,然后将ico的base64数据写到当前ico文件里
with open('logo.ico','wb+') as f:
f.write(base64.b64decode(img))
设置图标
设置图标,然后在删除这个ico文件即可
top = tkinter.Tk()
top.title("mp3修改器")
# 先打开一个文件,然后将ico的base64数据写到当前ico文件里
top.iconbitmap("logo.ico") # 设置图标
os.remove("logo.ico") # 再删除图标
# 进入消息循环
top.mainloop()
打包后运行结果:
完整代码展示
ico转base64写入的代码
import base64
open_icon = open("music.ico", "rb") # cs.icon为你要放入的图标
b64str = base64.b64encode(open_icon.read()) # 二进制读出之后转为base64
open_icon.close()
write_data = "img=%s" % b64str
f = open("logo.py", "w+") # 将base64格式的数据写到py文件中
f.write(write_data)
f.close()
设置图标的代码
with open('logo.ico', 'wb+') as f:
f.write(base64.b64decode(img))
top = tkinter.Tk()
top.title("mp3修改器")
# 先打开一个文件,然后将ico的base64数据写到当前ico文件里
top.iconbitmap("logo.ico") # 设置图标
os.remove("logo.ico") # 再删除图标
# 进入消息循环
top.mainloop()
评论区