har*_*he1 3 python ubuntu tkinter
我想在我的基于Python Tk包的GUI应用程序中设置一个图像.
我试过这段代码:
root.iconbitmap('window.xbm')
Run Code Online (Sandbox Code Playgroud)
但它给了我这个:
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
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
pat*_*yts 12
你想用wm iconphoto.比Python Tkinter更习惯于Tcl/Tk我不知道这是怎么暴露给你的(也许root.iconphoto)但它需要一个tkimage.在Tcl/Tk:
image create photo applicationIcon -file application_icon.png
wm iconphoto . -default applicationIcon
Run Code Online (Sandbox Code Playgroud)
在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)
Run Code Online (Sandbox Code Playgroud)
在Ubuntu上以交互方式执行此操作会导致应用程序图标(框架左上角的图像并显示在任务栏中)被更改为使用我提供的gif图像.
尝试这个:
root.iconbitmap('@window.xbm')
Run Code Online (Sandbox Code Playgroud)
并引用:
设置(获取)此窗口图标化时要使用的图标位图。某些窗口管理器(包括 Windows)会忽略此方法。
请注意,此方法只能用于显示单色图标。要显示彩色图标,请将其放入 Label 小部件中,然后使用 iconwindow 方法显示它。