Tkinter ImageTk.PhotoImage给出的消息不存在

Tkinter ImageTk.PhotoImage给出的消息不存在,tkinter,photoimage,Tkinter,Photoimage,我正在尝试向画布添加图像。 我从以前的论坛答案中窃取了代码,但它不起作用 img = Image.open(filename) self.currentImage['data'] = img photo = ImageTk.PhotoImage(img) label = tk.Label(image=photo) label.image = photo self.c.xview_moveto(0) self.c.yview_moveto

我正在尝试向画布添加图像。 我从以前的论坛答案中窃取了代码,但它不起作用

    img = Image.open(filename)
    self.currentImage['data'] = img

    photo = ImageTk.PhotoImage(img)
    label = tk.Label(image=photo)
    label.image = photo

    self.c.xview_moveto(0)
    self.c.yview_moveto(0)
    self.c.create_image(0, 0, image=photo, anchor='nw', tags='img')
    self.c.config(scrollregion=self.c.bbox('all'))
    self.currentImage['photo'] = photo
在create_image行生成消息_tkinter.TclError:image pyimage1不存在

我已经读了很多关于这个问题的答案,但都是关于做一个参考,或者使用电梯来改变显示顺序。 然而,我甚至还没有完成画布的创作


请问我缺少什么?

看起来您再次调用tk.tk试图在代码中创建两个或多个窗口。问题是,默认情况下,所有变量都链接到第一个根窗口,而第二个窗口不可用

正确的修复方法是构造代码,这样您就有了一个用tk.tk调用的主窗口,而所有其他窗口都应该用tk.Toplevel启动。任何程序都不应多次调用tk.tk

快速修复方法是为PhotoImage提供正确的母版:

photo = ImageTk.PhotoImage(img, master=self.c)

非常感谢。我会调查的。