如何为tkinter应用设置URL图标?

2 投票
2 回答
2849 浏览
提问于 2025-04-17 20:32

如果我有:

from Tkinter import *
app = Tk()

...

app.mainloop()

我会用 app.iconbitmap(...) 吗?

如果会的话,我该怎么用 这个 文件呢?我需要导入 urllib 吗?

2 个回答

1

这是我在Windows和Linux上都能用的调用方法。我发现Linux上不能使用ico格式的文件,所以我只用了gif格式的文件,这种格式在两个平台上都能正常工作。

class Editor(tk.Tk):
   . . .
   . . . 
   self.tk.call('wm', 'iconphoto', self._w, tk.PhotoImage(file = "my_icon.gif"))
1

你可以用这个来替换 Tkinter 默认的图标。

import base64, PIL, urllib, Tkinter
from Tkinter import *
from PIL import ImageTk
from urllib import *

root = Tk()

raw_data = urllib.urlopen("http://dl.dropboxusercontent.com/s/qtlincxkbbiz1qv/stat.gif").read()

b64_data = base64.encodestring(raw_data)
image = PhotoImage(data=b64_data)

root.tk.call('wm', 'iconphoto', root._w, image)

root.mainloop()

然后把 .py 文件的后缀改成 .pyw,这样就能改变任务栏上的图标了。

使用 .pyw 后缀意味着它会用 pythonw.exe 来运行,而不是 python.exe。这样做的好处是,运行时不会出现控制台窗口。

所以,你要么就只能在没有图标的情况下运行,要么就是在没有控制台的情况下运行。

撰写回答