python 打包tkinter图标问题
1、随便创建py文件,写入代码图片转换成base64 py文件
import base64
open_icon = open("bitbug_favicon.ico", "rb") # Image.icon为你要放入的图标
b64str = base64.b64encode(open_icon.read()) # 以base64的格式读出
open_icon.close()
write_data = "img=%s" % b64str
f = open("jj.py", "w+") # 将上面读出的数据写入到jj.py的img数组中
f.write(write_data)
f.close()
生成完成后,可以不需要这个py文件。
2、tkinter导入生成jj.py文件
from tkinter import *
import base64
import os
from jj import img
#生成窗口
window = Tk()
#命名软件标题
window.title('jj软件')
#设置窗体大小和现实win位置
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
width = 700
height = 180
window_size = f'{width}x{height}+{round((screen_width - width) / 2)}+{round((screen_height - height) / 2)}'
window.geometry(window_size)
#生成临时图标文件
tmp = open("img.ico","wb+")
tmp.write(base64.b64decode(img))
tmp.close()
window.iconbitmap("img.ico")
#删除临时图标文件
os.remove("img.ico")
window.mainloop()
3、然后使用pyinstaller库打包
pyinstaller -F -w xxx.py -n 'exe名称' -i 'exe图标.ioc