Tkinter:无法识别图像

时间:2014-07-13 16:16:26

标签: python tkinter

我有一个简单的GUI程序,我正在用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 :(得分:0)

您的问题很可能是图片不在正确的位置。要确保它是,请尝试输入您的命令行(Mac终端),然后输入ls /Users/michael/Desktop/Skype.gif。如果打印Skype.gif/Users/michael/Desktop/Skype.gif,那么文件就在那里,否则就不存在。

答案 1 :(得分:0)

路径从python文件所在的位置开始,所以如果它们位于同一个文件夹中,只需放置photo = PhotoImage(file='Skype.gif')

答案 2 :(得分:0)

在某些情况下,Tkinter仅识别s PNG图像或JPG图像。如果你有一个gif图像,你可以使用另一个名为WxPython的模块来合并它。这是如何工作的,它使用逐帧图像来显示视频类型图像。 Tkinter不支持这一点。

答案 3 :(得分:0)

确保您的图片格式为PNG或JPG