当我尝试使用下面的代码将左上角的窗口图标从丑陋的红色“TK”更改为我自己的 favicon 时,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
我已经做了什么:
- 我检查了路径 - 一切都是 100% 正确的
- 我尝试了其他文件格式,例如
.png
或.bmp
- 没有工作 - 我在很多网站上查过这个问题
第三点,我最喜欢的关于 Tkinter 的网站 effbot.org 告诉我,Windows 忽略了该iconbitmap
功能。但这并不能解释为什么它会引发错误!
有一些“hackish”方法可以避免这个问题,但它们都不是为 Python 3.x 编写的。
所以我的最后一个问题是:有没有办法使用 Python 3.x 和 Tkinter 获得自定义图标?
另外,不要告诉我我应该使用另一个 GUI 库。我希望我的程序可以在每个平台上运行。我也想要一个编码版本,而不是一个py2exe
或sth
解决方案。