我有一个简单的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”
答案 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