本篇主题:
如何不使用额外图片文件设定tkinter窗口图标?
1.使用图标文件的方法(这个不是本次主题,只是提一下)
root.iconbitmap("icon.ico") #将root替换为你在类似于root = tkinter.Tk()的代码中定义的窗口名,将icon.ico替换为图标路径
2.不使用额外图标文件(本次主要内容)
这意味着需要将图标内容存储在源代码中,因此需要将图标转为一串编码。
将图片转为这种编码的方法如下(图标文件格式不是ico,需要为png):
from PIL import Image
import io
import base64
# 读取图片
img = Image.open('image.png') #将image.png替换为你的png图标路径
# 将图片转换为GIF89a格式
with io.BytesIO() as output:
img.save(output, format='GIF')
gif = output.getvalue()
# 对GIF格式字节串进行base64编码
encoded_string = base64.b64encode(gif).decode('utf-8')
# 输出
print(encoded_string)
然后直接复制输出的结果。
接下来是将图标放到tkinter窗口中的办法(将下面的代码插入到类似root = tkinter.Tk()的代码下面就行):
icon = tkinter.PhotoImage(data=b"icon_data") #将icondata直接替换为复制的图标编码,其他不要改动
好了,大功告成!
3.注意事项
使用方法2需先安装pillow库。
方法:
批处理(cmd.exe)输入
pip install pillow
原创文章,转载请标明出处!