ImageTk.PhotoImage 给出不存在的消息
ImageTk.PhotoImage gives does not exist message
我正在尝试将图像添加到 canvas。
我从以前的论坛答案中窃取了代码,但它不起作用。
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:图像 "pyimage1" 不存在”。
这个问题我看了很多答案,但都是参考,或者用lift改变显示顺序。
但是,我什至没有通过 canvas.
的创建
请问我错过了什么?
您似乎试图通过再次调用 tk.Tk()
在您的代码中创建 2 个或更多 windows。这样做的问题是默认情况下第一个根 window 的所有变量 link 而对第二个 window 不可用。
正确的解决方法是构建您的代码,以便您有一个用 tk.Tk()
调用的主 window,所有其他 windows 应该以 tk.Toplevel
开头.任何程序都不应多次调用 tk.Tk()
。
一个快速的 hacky 修复是为 PhotoImage 提供正确的母版:
photo = ImageTk.PhotoImage(img, master=self.c)
我正在尝试将图像添加到 canvas。 我从以前的论坛答案中窃取了代码,但它不起作用。
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:图像 "pyimage1" 不存在”。
这个问题我看了很多答案,但都是参考,或者用lift改变显示顺序。 但是,我什至没有通过 canvas.
的创建请问我错过了什么?
您似乎试图通过再次调用 tk.Tk()
在您的代码中创建 2 个或更多 windows。这样做的问题是默认情况下第一个根 window 的所有变量 link 而对第二个 window 不可用。
正确的解决方法是构建您的代码,以便您有一个用 tk.Tk()
调用的主 window,所有其他 windows 应该以 tk.Toplevel
开头.任何程序都不应多次调用 tk.Tk()
。
一个快速的 hacky 修复是为 PhotoImage 提供正确的母版:
photo = ImageTk.PhotoImage(img, master=self.c)