【问题标题】:Tkinter: 'image ''pyimage2'' doesn't exist'?Tkinter:\'image \'\'pyimage2\'\' 不存在\'?
【发布时间】:2022-11-29 22:30:51
【问题描述】:

我的完整代码

from tkinter import *
i=0
 for i in range(10) :
 window = Tk()
 window.title('add image')
 window = Canvas(window,width= 600, height= 600)
 window.pack()
 image=PhotoImage(file=r"C:\\Users\\Konstantinos\\New folder\\hello.png")
 window.create_image(0,0, anchor = NW, image=image)
window.mainloop()

我运行程序时的错误

File "C:\Programms\Lib\tkinter\__init__.py", line 2832, in _create
return self.tk.getint(self.tk.call(
                      ^^^^^^^^^^^^^
_tkinter.TclError: image "pyimage2" doesn't exist

我调试程序时的错误

Exception has occurred: TclError
image "pyimage2" doesn't exist
File "C:\Users\Konstantinos\New folder\demo.py", line 9, in <module>
window.create_image(0,0, anchor = NW, image=image)

所以基本上,程序会多次打开图像,直到电脑崩溃。当程序不在循环中时,它可以工作,但是当我将它放入循环中时,它会给我错误。因为我最近开始编程,所以我真的不知道如何解决这个问题,而且我已经查看了其他有类似问题的线程,但没有一个适用于我。我将不胜感激任何答案

【问题讨论】:

  • 将代码发布在问题内的文本中,而不是链接中。完整的错误回溯也是如此。顺便说一句,为什么你需要 for 循环?
  • 我只是在这里猜测,但你确定文件存在吗?
  • @LewisMorris 是的,文件存在
  • 快速谷歌似乎你可以试试这个Toplevel()而不是Tk()
  • 我试过了,但它只适用于第一个窗口而不适用于其余窗口

标签: python python-3.x tkinter


【解决方案1】:

该错误可能来自多个 Tk 实例。尝试删除 for 循环,然后它将起作用。但是,如果您打算使用多个窗口,那么您可以查看这个答案:https://stackoverflow.com/a/36316105/9983213。随意修改示例。

一个较小的例子是:

import tkinter as tk

root = tk.Tk()
for i in range(5):
    top = tk.Toplevel(root)

root.mainloop()

【讨论】:

    猜你喜欢
    • 2014-11-23
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2020-04-25
    相关资源
    最近更新 更多