使用 Tkinter 命令 "iconbitmap" 设置 window 图标

Using Tkinter command "iconbitmap" to set window icon

我有一个带有 Tkinter window 的程序,我想为 window 设置一个图标。我使用此代码:window.iconbitmap(os.path.dirname(os.path.abspath(__file__))+"/icon.png") 但抛出以下错误:

Traceback (most recent call last):
  File "myprogram.py", line 241, in <module>
    window.iconbitmap(os.path.dirname(os.path.abspath(__file__))+"/icon.png")
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1591, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "/home/guest/documents/myprogramdir/icon.png" not defined

我认为这是因为我将图标文件与其余代码放在同一目录中。但这就是我想要的样子。有解决办法吗?

假设这个错误是在 Windows OS 中抛出的,问题是 iconbitmap 似乎不支持 Windows 中的 png 文件类型。请改用 .ico 文件类型。这个网络工具对我来说非常有用 - https://iconverticons.com/online/。对于 Linux OS,使用 xbm 文件类型。

PS-下次提问时请提供相关细节。例如:出现此错误的 OS 的名称和版本。

使用 pillow 库将文件转换为 ico 格式的代码。可用格式:https://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html

from PIL import Image
filen = r'icon.png'
img = Image.open(filen)
img.save('icon.ico',format = 'ICO', sizes=[(32,32)])

在 PyCharm 之前 mainloop 添加[​​=12=]
app.iconbitmap(r'C:\Users\User\PycharmProjects\HelloWorld\my.ico')

在控制台输入

pyinstaller --onefile -w -F -i "my.ico" my.py

您可以设置您的图标目录,与您的代码位于同一个文件夹中并不重要,例如,我将我的图标保存在图像文件夹中,地址为 C:\PYTHON\library\images

from tkinter import *

win = Tk() win.iconbitmap('C:/PYTHON/library/images/book5.ico') win.mainloop()

您需要在路径前使用关键字“bitmap”或“default”:

window.iconbitmap(bitmap="Icon path.ico")

或:

window.iconbitmap(default="Icon path.ico")

如果您使用 windows,“默认”选项不仅会为指定的 window 设置文件图标,还会为所有没有图标的后代设置图标明确设置。 请注意,您必须使用 .ico 文件(我尝试过使用其他类型的文件,但没有用)。