tkinter窗口图标

本篇主题:
如何不使用额外图片文件设定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


原创文章,转载请标明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值