在将图像添加到标签时出现“ TclError:图像”

时间:2018-12-23 10:39:35

标签: python image tkinter

我一直试图在我的Tkinter GUI中添加图像,而Google似乎没有给出答案。我知道我不应该在同一主窗口中使用网格或打包宝石管理器,据我所知,我还没有,但是每次尝试都导致以下错误消息之一:

TclError: cannot use geometry manager grid inside . which already has slaves managed by pack

或:

TclError: image "pyimage86" doesn't exist

每次我重新运行代码时,“ pyimage86”都会发生变化,每次运行都会将数字增加1,例如“ pyimage86”,“ pyimage87”等。

第一个错误消息特别令人困惑,因为我正在使用.grid将标记的图像放入类中,但是错误是不是这样? (示例代码不在类中,我知道)

我尝试了不同的图像,并将原始图像转换为.TIF,.JNP,.PNG,.GIF,但没有给出结果。我还删除了Alpha通道(使用ImageTK.PhotoImage时可能确实是一个问题,但没有帮助)。我也将图像转换为grasyscale作为最后的尝试,但是没有运气。

import tkinter as tk          
import PIL.Image
import PIL.ImageTk



root = tk.Tk()

image = Image.open("TemplateRack_GUI.png")
photo = ImageTk.PhotoImage(image)       

label = tk.Label(image=photo)
label.image = photo 
label.grid(row=5, column=5)


root.mainloop()   

1 个答案:

答案 0 :(得分:0)

您说您的程序有时会给您:

TclError:无法使用已经由包管理从站的几何管理器网格。

有时:

TclError:图像“ pyimage86”不存在。

我不敢相信!

您还说过:“我了解我不应该在同一课程中使用网格或打包的宝石学管理器”

关于你在上什么课?

Tkinter文档说:切勿在同一主窗口中混合网格和打包。 请重新检查您的代码,因为您正在使用某个地方的包装和网格。