繁体   English   中英

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

[英]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)])

在主循环添加之前在 PyCharm 中

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM