当我尝试使用以下代码将左上角的窗口图标从难看的红色“ TK”更改为我自己的收藏夹图标时,Python抛出错误:
from tkinter import * root = Tk() #some buttons, widgets, a lot of stuff root.iconbitmap('favicon.ico')
这应该将图标设置为“ favicon.ico”(根据网络上的许多论坛帖子)。但是不幸的是,所有这些行所做的只是抛出以下错误:
Traceback (most recent call last): File "d:\ladvclient\mainapp.py", line 85, in <module> root.iconbitmap(bitmap='favicon.ico') File "C:\Python33\lib\tkinter\__init__.py", line 1637, in wm_iconbitmap return self.tk.call('wm', 'iconbitmap', self._w, bitmap) _tkinter.TclError: bitmap "favicon.ico" not defined
我已经做了:
.png
.bmp
第三点,我最喜欢的Tkinter网站effbot.org告诉我Windows忽略了该iconbitmap功能。但这并不能解释为什么会引发错误!
iconbitmap
有一些“骇人的”方法可以避免该问题,但是都不是针对Python 3.x编写的。
所以我的最后一个问题是:是否可以使用Python 3.x和Tkinter获得自定义图标?
另外,不要告诉我应该使用另一个GUI库。我希望我的程序可以在每个平台上运行。我还想要一个编码版本,而不是py2exe或sth解决方案。
py2exe
sth
您需要与favicon.ico脚本位于同一文件夹或字典中,因为python仅在当前字典中搜索,或者您可以输入完整的路径名。例如,这有效:
favicon.ico
from tkinter import * root = Tk() root.iconbitmap(r'c:\Python32\DLLs\py.ico') root.mainloop()
但这会因您的错误而爆炸:
from tkinter import * root = Tk() root.iconbitmap('py.ico') root.mainloop()