我正在尝试将图像添加到画布中。 我从以前的论坛答案中窃取了代码,但它无效。
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“不存在”。
我已经阅读了很多这个问题的答案,但所有这些都是关于制作参考,或使用电梯来改变显示顺序。 但是我甚至没有超越画布的创作。
我错过了什么?
答案 0 :(得分:1)
通过再次调用tk.Tk()
,您似乎尝试在代码中创建2个或更多窗口。这个问题是默认情况下所有变量都链接到第一个根窗口,第二个窗口不可用。
正确的解决方法是构建代码,以便您有一个使用tk.Tk()
调用的主窗口,所有其他窗口应该以{{1}}启动。任何程序都不应多次调用tk.Toplevel
。
快速解决问题的方法是为PhotoImage提供正确的主控:
tk.Tk()