Tkinter pyimage不存在

2024-09-27 23:16:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道有很多类似的问题,但没有一个简单到我能理解。我有以下代码:

import Tkinter as tk
from PIL import Image, ImageTk

class MainWindow:
    def __init__(self, master):
        canvas = Canvas(master)
        canvas.pack()
        self.pimage = Image.open(filename)
        self.cimage = ImageTk.PhotoImage(self.pimage)
        self.image = canvas.create_image(0,0,image=self.cimage)


filename = full_filename
root = tk.Tk()
x = MainWindow(root)
mainloop()

我得到以下错误:

TclError: image "pyimage36" doesn't exist

我读过一些关于图像对象被垃圾清理的文章,但我不太明白。


Tags: 代码imageimportselfmastertkinterrootfilename
2条回答

明白了。出于某种原因,在调试器中运行时,如果以前的任何执行都抛出了错误,我将得到“pyimage不存在”错误。但是,如果我重新启动调试器(或者之前执行的脚本没有抛出错误),则程序运行正常。

在使用spyder 3.3.6时,我收到了同样的错误消息。在收到“Tinker pyimage错误”后,让.png文件加载并显示的唯一方法是转到控制台并重新启动内核。从那以后我工作得很好。

相关问题 更多 >

    热门问题