使用Tkinter命令“iconbitmap”设置窗口图标

问题描述 投票:0回答:6

我有一个带有 Tkinter 窗口的程序,我想为该窗口设置一个图标。我使用这段代码:

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

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

python tkinter icons
6个回答
4
投票

假设此错误是在 Windows 操作系统中引发的,问题是

iconbitmap
似乎不支持 Windows 中的
png
文件类型。请改用
.ico
文件类型。这个网络工具对我来说非常有用 - https://iconverticons.com/online/。对于 Linux 操作系统,请使用
xbm
文件类型。

PS-下次提问时请提供相关详细信息。例如:出现此错误的操作系统的名称和版本。


3
投票

使用 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)])

0
投票

在 PyCharm 中在主循环之前添加

app.iconbitmap(r'C:\Users\User\PycharmProjects\HelloWorld\my.ico')

在控制台输入

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

0
投票

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

from tkinter import *

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


0
投票

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

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

或:

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

如果您使用的是 Windows,“默认”选项不仅将文件设置为指定窗口的图标,而且还为其所有未显式设置任何图标的子窗口设置图标。 请注意,您必须使用 .ico 文件(我尝试过使用其他类型的文件,但没有成功)。


0
投票

避免此错误的最佳和最简单的方法是转到 VS code 或您正在使用的任何 IDE 的终端,使用 cd 命令将路径设置为当前路径,然后运行它。它绝对可以运行。

© www.soinside.com 2019 - 2024. All rights reserved.