我想设置一个应用程序图标(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"
我究竟做错了什么?
这个问题是不是代码,但图标。 我试图创建一个xbm
与其他程序比瘸子(KDE的一些图标编辑器),虽然它看起来可怕丑陋,但它显示的图标。 我想我必须找到一个创作者,让我的Python程序的“理解”的图标。
编辑
该iconbitmap
方法被证明只能是黑白的,所以它毕竟是无用的。
经过长时间的搜寻后,我找到了解决方案将应用程序设置的用于Python 3(在Linux上)图标的颜色。 我发现它在这里 :
root = Tk()
img = PhotoImage(file='your-icon')
root.tk.call('wm', 'iconphoto', root._w, img)
这是一个老问题,有很多写它在网络上的东西,但所有的这是不正确或不完整的,所以有得到它的工作,我认为这将是很好的在这里记录我的实际工作的代码。
首先,你需要创建一个图标并将其保存在两种格式: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()
我想这一点,我无法得到它使用的是Windows 7的工作。
找到了解决。
使用雅各布的回答,但文件必须是.gif
如果你使用我的操作系统(Windows 7)中出现。
请使用MS油漆64×64 GIF,保存它,使用文件路径和宾果游戏,工作。
这将允许您使用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。