Tkinter: 图像未被识别
我正在用Tkinter构建一个简单的图形用户界面程序。我想要有很多按钮,上面放着应用程序的图标,当点击这些按钮时,就能启动对应的应用程序。问题是,Python无法识别Skype.gif
这个文件。
代码:
from tkinter import *
import os
def open_skype():
os.system('open /Applications/Skype.app')
master = Tk()
photo = PhotoImage(file='/Users/michael/Desktop/Skype.gif')
but = Button(master, image=photo, command=open_skype)
objs = [but]
column = 1
for i in objs:
i.grid(column=column, row=1)
column += 1
mainloop()
错误信息:
_tkinter.TclError: 无法识别图像文件 "/Users/michael/Desktop/Skype.gif" 中的数据
4 个回答
0
确保你的图片格式是PNG或JPG。
0
Tkinter 只支持 PNG 格式的图片,或者在某些情况下支持 JPG 格式的图片。如果你有 GIF 动画图片,可以通过另一个叫 WxPython 的模块来使用。它的原理是通过逐帧的图片来显示类似视频的效果,而 Tkinter 是不支持这种方式的。
0
路径是从你放置Python文件的地方开始的,所以如果它们在同一个文件夹里,只需要写 photo = PhotoImage(file='Skype.gif')
就可以了。
0
你的问题很可能是图片没有放在正确的位置。为了确认这一点,可以打开你的命令行工具(在Mac上是终端),然后输入 ls /Users/michael/Desktop/Skype.gif
。如果显示出 Skype.gif
或者 /Users/michael/Desktop/Skype.gif
,那说明文件在那儿;如果没有显示,那就说明文件不在那儿。