当我尝试使用下面的代码将丑陋的红色"TK"左上角的窗口图标更改为我自己的图标时,Python发出错误:
from tkinter import *
root = Tk()
#some buttons, widgets, a lot of stuff
root.iconbitmap('favicon.ico')
Run Code Online (Sandbox Code Playgroud)
这应该将图标设置为'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
Run Code Online (Sandbox Code Playgroud)
我已经做了什么:
.png或.bmp没有工作而对于第三点,我最喜欢的关于Tkinter的网站effbot.org告诉我,Windows忽略了这个iconbitmap功能.但这并不能解释为什么会抛出错误!
有一些"hackish"方法可以避免这个问题,但没有一个是为Python 3.x编写的.
所以我的最后一个问题是:有没有办法使用Python 3.x和Tkinter获取自定义图标?
另外,不要告诉我应该使用另一个GUI库.我希望我的程序能够在每个平台上运行.我也想要一个编码版本,而不是一个py2exe或sth解决方案.