如何用Python从GitHub仓库获取ICO文件并设置为Tkinter窗口iconbitmap
解决Tkinter窗口从GitHub加载ICO图标的问题
Tkinter的iconbitmap()方法不支持直接传入远程URL,必须使用本地文件路径。要实现从GitHub仓库获取ICO并设置为窗口图标,需要先将文件下载到本地(可以是临时文件),再调用iconbitmap()。
实现步骤:
- 通过Python的网络请求库下载GitHub上的ICO文件到本地临时路径
- 将本地文件路径传入
window.iconbitmap()完成图标设置
完整代码示例:
import tkinter as tk import urllib.request import tempfile import os window = tk.Tk() window.title("Feedback And Rating") window.geometry("300x350") # 下载GitHub上的ICO文件到临时文件 ico_url = "https://raw.githubusercontent.com/AngusAU293/Application-Assets/main/Feedback%20And%20Rating%20Example/icon.ico" with tempfile.NamedTemporaryFile(delete=False, suffix=".ico") as temp_file: urllib.request.urlretrieve(ico_url, temp_file.name) # 设置窗口图标 window.iconbitmap(temp_file.name) # 窗口关闭时清理临时文件 def on_closing(): os.unlink(temp_file.name) window.destroy() window.protocol("WM_DELETE_WINDOW", on_closing) window.mainloop()
关键说明:
- 使用
tempfile.NamedTemporaryFile创建临时文件,无需手动指定固定路径 urllib.request.urlretrieve可直接将远程资源保存到本地文件- 新增窗口关闭时的清理逻辑,避免临时文件残留
内容的提问来源于stack exchange,提问作者AngusAU293
相关产品推荐
相关产品推荐

