[英]Using Tkinter command "iconbitmap" to set window icon
我有一个带有 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
我认为这是因为我的图标文件与我的其余代码位于同一目录中。 但这就是我想要的。 有解决办法吗?
假设在 Windows 操作系统中抛出此错误,问题是iconbitmap
在 Windows 中似乎不支持png
文件类型。 改用.ico
文件类型。 这个网络工具对我来说很棒 - https://iconverticons.com/online/ 。 对于 Linux 操作系统,请使用xbm
文件类型。
PS-下次提问时请提供相关细节。 例如:出现此错误的操作系统的名称和版本。
使用枕头库将文件转换为 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)])
app.iconbitmap(r'C:\Users\User\PycharmProjects\HelloWorld\my.ico')
pyinstaller --onefile -w -F -i "my.ico" my.py
你可以设置你的图标目录,在你的代码的同一个文件夹中并不重要,例如我将我的图标保存在这个 aیdress C:\\PYTHON\\library\\images 的图像文件夹中
from tkinter import *
win = Tk()
win.iconbitmap('C:/PYTHON/library/images/book5.ico')
win.mainloop()
您需要在路径前使用关键字“位图”或“默认”:
window.iconbitmap(bitmap="Icon path.ico")
或者:
window.iconbitmap(default="Icon path.ico")
如果您使用的是 Windows,则“默认”选项不仅将文件设置为指定窗口的图标,而且还设置为其所有未明确设置任何图标的后代的图标。 请注意,您必须使用 .ico 文件(我曾尝试使用其他类型的文件,但没有奏效)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.