我一直试图在我的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()
答案 0 :(得分:0)
您说您的程序有时会给您:
TclError:无法使用已经由包管理从站的几何管理器网格。
有时:
TclError:图像“ pyimage86”不存在。
我不敢相信!
您还说过:“我了解我不应该在同一课程中使用网格或打包的宝石学管理器”
关于你在上什么课?
Tkinter文档说:切勿在同一主窗口中混合网格和打包。 请重新检查您的代码,因为您正在使用某个地方的包装和网格。