你好,我有一个带有Tkinter窗口的程序,我想为窗口设置一个图标。我编写了这个代码:okno.iconbitmap(os.path.dirname(os.path.abspath(__file__))+"/icon.png")
但它写道:
Traceback (most recent call last):
File "Alchymist_lab.py", line 241, in <module>
okno.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/lenka/documents/Alchymist_Lab/icon.png" not defined
我知道原因:因为我的图标文件与我的代码位于同一目录中。但我确实想把它放在与我的代码相同的目录中。有解决方案吗?
答案 0 :(得分:1)
假设Windows操作系统中出现此错误,问题是iconbitmap
似乎不支持Windows中的png
文件类型。请改用.ico
文件类型。这个webtool对我来说非常棒 - https://iconverticons.com/online/。对于Linux OS,请使用xbm
filetype。
PS-请在下次提问时提供相关详细信息。例如:您收到此错误的操作系统的名称和版本。
答案 1 :(得分:1)
使用枕头库将文件转换为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)])
答案 2 :(得分:0)
app.iconbitmap(r'C:\Users\User\PycharmProjects\HelloWorld\my.ico')
pyinstaller --onefile -w -F -i "my.ico" my.py
答案 3 :(得分:0)
你可以设置你的图标目录,在你的代码的同一个文件夹中并不重要,例如我将我的图标保存在这个 aیdress C:\PYTHON\library\images 的图像文件夹中
from tkinter import *
win = Tk()
win.iconbitmap('C:/PYTHON/library/images/book5.ico')
win.mainloop()