4

我想在我的基于 Python Tk 包的 GUI 应用程序中设置一个图像。

我试过这段代码:

root.iconbitmap('window.xbm')

但它给了我这个:

root.iconbitmap('window.xbm')
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1567, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "window.xbm" not defined

任何人都可以帮忙吗?

4

3 回答 3

15

你想用wm iconphoto. 比 Python Tkinter 更习惯于 Tcl/Tk 我不知道它是如何暴露给你的(也许root.iconphoto),但它需要一个tkimage. 在 Tcl/Tk 中:

image create photo applicationIcon -file application_icon.png
wm iconphoto . -default applicationIcon

在 Tk 8.6 中,您可以提供 PNG 文件。在此之前,您必须使用 TkImg 扩展来支持 PNG 或使用 GIF。Python PIL 包可以为您将图像转换为 TkImage 对象,这应该会有所帮助。

编辑

我也在 Python 中尝试过,以下对我有用:

import Tkinter
from Tkinter import Tk
root = Tk()
img = Tkinter.Image("photo", file="appicon.gif")
root.tk.call('wm','iconphoto',root._w,img)

在 Ubuntu 上以交互方式执行此操作导致应用程序图标(框架左上角的图像并显示在任务栏中)被更改为使用我提供的 gif 图像。

于 2013-04-18T11:37:58.523 回答
3

这对我有用

from tkinter import *       

raiz=Tk()
raiz.title("Estes es el titulo")
img = Image("photo", file="pycharm.png")
raiz.tk.call('wm','iconphoto',raiz._w, img)
raiz.mainloop()
于 2018-10-16T20:37:27.083 回答
0

尝试这个:

root.iconbitmap('@window.xbm')

引用

设置(获取)此窗口图标化时要使用的图标位图。某些窗口管理器(包括 Windows)会忽略此方法。

请注意,此方法只能用于显示单色图标。要显示彩色图标,请将其放入 Label 小部件并使用 iconwindow 方法显示它。

于 2013-04-18T11:21:00.250 回答