Tkinter: 图像未被识别

1 投票
4 回答
2665 浏览
提问于 2025-04-18 13:09

我正在用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,那说明文件在那儿;如果没有显示,那就说明文件不在那儿。

撰写回答