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

时间:2017-07-29 23:08:52

标签: 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(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“不存在”。

我已经阅读了很多这个问题的答案,但所有这些都是关于制作参考,或使用电梯来改变显示顺序。 但是我甚至没有超越画布的创作。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

通过再次调用tk.Tk(),您似乎尝试在代码中创建2个或更多窗口。这个问题是默认情况下所有变量都链接到第一个根窗口,第二个窗口不可用。

正确的解决方法是构建代码,以便您有一个使用tk.Tk()调用的主窗口,所有其他窗口应该以{{1​​}}启动。任何程序都不应多次调用tk.Toplevel

快速解决问题的方法是为PhotoImage提供正确的主控:

tk.Tk()