Tkinter的TclError:错误读取位图文件Tkinter的TclError:错误读取位图文件

2019-06-12 05:05发布

我想设置一个应用程序图标(python3 / Tkinter的)是这样的:

Interface()
root.title("Quicklist Editor")
root.iconbitmap('@/home/jacob/.icons/qle_icon.ico')
root.resizable(0, 0)
root.mainloop()

不管我做什么,我不断收到错误消息(空闲),他说:

return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: error reading bitmap file "/home/jacob/.icons/qle_icon.ico"

我究竟做错了什么?

Answer 1:

这个问题是不是代码,但图标。 我试图创建一个xbm与其他程序比瘸子(KDE的一些图标编辑器),虽然它看起来可怕丑陋,但它显示的图标。 我想我必须找到一个创作者,让我的Python程序的“理解”的图标。


编辑

iconbitmap方法被证明只能是黑白的,所以它毕竟是无用的。

经过长时间的搜寻后,我找到了解决方案将应用程序设置的用于Python 3(在Linux上)图标的颜色。 我发现它在这里 :

root = Tk()
img = PhotoImage(file='your-icon')
root.tk.call('wm', 'iconphoto', root._w, img)


Answer 2:

这是一个老问题,有很多写它在网络上的东西,但所有的这是不正确或不完整的,所以有得到它的工作,我认为这将是很好的在这里记录我的实际工作的代码。

首先,你需要创建一个图标并将其保存在两种格式:Windows的“ICO”和Unix“XBM”。 64×64是一个很好的规模。 XBM是一个1比特的格式 - 像素刚刚打开或关闭,所以没有颜色,没有灰色。 Tkinter的的Linux实现只接受XBM即使每一个Linux桌面支持实时图标,所以你只是运气那里。 此外,XBM规范不明确是否为“ON”位代表黑色或白色的,所以你可能有反转XBM一些桌面。 GIMP是良好的创建这些。

然后把图标在您的标题栏,使用此代码(Python 3中):

import os
from tkinter import *
from tkinter.ttk import *

root = Tk()
root.title("My Application")
if "nt" == os.name:
    root.wm_iconbitmap(bitmap = "myicon.ico")
else:
    root.wm_iconbitmap(bitmap = "@myicon.xbm")

root.mainloop()


Answer 3:

我想这一点,我无法得到它使用的是Windows 7的工作。

找到了解决。

使用雅各布的回答,但文件必须是.gif如果你使用我的操作系统(Windows 7)中出现。

请使用MS油漆64×64 GIF,保存它,使用文件路径和宾果游戏,工作。



Answer 4:

这将允许您使用PNG文件作为图标,它也呈现颜色。 我测试的Xubuntu 14.04,32位与Python 3.4( root是您的Tk对象):

import sys, os
program_directory=sys.path[0]
root.iconphoto(True, PhotoImage(file=os.path.join(program_directory, "test.png")))

(查找程序目录,如果你想它来搜索是很重要的test.png在所有环境中的相同位置。 os.path.join是一个跨平台的方式来增加test.png到程序目录。)

如果更改时真亦假,那么它不会使用相同的图标是不是主要的一个窗口。

请让我知道,如果这个工程在Windows和Mac。



文章来源: tkinter TclError: error reading bitmap file