我有这个:
import tkinter
gui = tkinter.Tk()
gui.iconbitmap(default='/home/me/PycharmProjects/program/icon.ico')
gui.mainloop()`
但是当我跑步时,我得到一个错误说
Traceback (most recent call last):
File "/home/spencer/PycharmProjects/xMinecraft/GUI.py", line 17, in <module>
gui.iconbitmap(default='/home/me/PycharmProjects/program/icon.ico')
File "/usr/lib/python3.3/tkinter/__init__.py", line 1638, in wm_iconbitmap
return self.tk.call('wm', 'iconbitmap', self._w, '-default', default)
_tkinter.TclError: wrong # args: should be "wm iconbitmap window ?bitmap?"`
我正在尝试使用tkinter设置一个窗口,我已经制作了图标。我在ubuntu 13.10上安装了Pycharm。我尝试了各种各样的事情,从更改'/'到'\'并在前面添加Z://因为这是我的分区名称。但我仍然得到错误所以请帮助。
答案 0 :(得分:8)
您需要将路径指定为第一个位置参数,或使用关键字参数&#34; bitmap&#34;。它的文档记录很差,但是需要位图参数;你不能只提供default
关键字参数。事实上,bitmap
关键字参数已在python 3中删除。
但是,您只能在Windows上使用.ico文件。在ubuntu和其他Linux机器上,您需要使用.xbm文件,并需要在其前面添加&#34; @&#34;
这应该仅适用于Windows:
gui.iconbitmap('/home/me/PycharmProjects/program/icon.ico')
在ubuntu上,它需要是这样的:
gui.iconbitmap('@/home/me/PyCharmProjets/program/icon.xbm')
您不能将.ico文件重命名为.xbm,它们是完全不同的文件格式。
答案 1 :(得分:4)
有趣的研究
png,svg,ico无效
我在我的机器上找到了一个xbm(xubuntu - Linux dist),多亏了sqlitemanager
tool.xbm
注意@ - 代码是对Lutz“Programming Python”的修改,第1章,tkinter103.py
from tkinter import *
from tkinter.messagebox import showinfo
def reply(name):
showinfo(title='Reply', message='Hello %s!' % name)
top = Tk()
#img = PhotoImage(file='py-blue-trans-out.ico') #no
top.title('Echo')
top.iconbitmap('@tool.xbm') #yes
#top.iconphoto(True, PhotoImage(file='tool.xbm')) #no
Label(top, text="Enter your name:").pack(side=TOP)
ent = Entry(top)
ent.pack(side=TOP)
btn = Button(top, text="Submit", command=(lambda: reply(ent.get())))
btn.pack(side=LEFT)
top.mainloop()
答案 2 :(得分:2)
在2018年仍然是Google排名较高的问题。 在python3中对我有用的是什么 是在Windows中使用ico,在Linux中使用gif:
if ( sys.platform.startswith('win')):
gui.iconbitmap('logo_Wicon.ico')
else:
logo = PhotoImage(file='logo.gif')
gui.call('wm', 'iconphoto', gui._w, logo)
答案 3 :(得分:0)
有两种方法,
1)在ubuntu中使用xbm文件,因为ubuntu无法读取ico文件。但问题是xbm只能显示黑白图像。
2)使用tkinter.photoimage显示如下图标图片,
img = PhotoImage(file='your-icon')
root.tk.call('wm', 'iconphoto', root._w, img)
这里的问题是photoimage只能读取GIF和PGM / PPM图像。
请在此处查看详细信息 - https://stackoverflow.com/a/11180300
答案 4 :(得分:0)
我必须转换为XBM格式并使用以下root.iconbitmap('@ imagename.xbm'),但我的平台是Ubuntu,我发现我的os主题没有他的图像点....
答案 5 :(得分:0)
要在linux中显示彩色图标,您需要如下所示:
import tkinter
window = tkinter.Tk()
window.title("My Application")
img = tkinter.PhotoImage(file='~/pharmapos/pharmapos.png')
window.tk.call('wm', 'iconphoto', window._w, img)
window.mainloop()
答案 6 :(得分:-1)
import tkinter
gui = tkinter.Tk()
gui.iconbitmap()
gui.mainloop()
代替gui.iconbitmap(默认='/ home / me / PycharmProjects / program / icon.ico')我使用的是gui.iconbitmap(),这对我有用。