【发布时间】:2017-11-07 18:43:28
【问题描述】:
我正在使用 Tkinter 和 Python 来创建 GUI。我不知道如何在 tkinter 中显示 seaborn 图(另一个问题),所以我试图通过将图保存为图像然后显示它来规避它。
我已尝试使用以下代码来显示现有图像:
from tkinter import *
from PIL import ImageTk, Image
window = Tk()
load = Image.open('plot.png')
render = ImageTk.PhotoImage(load)
img = Label(window, image=render)
img.image = render
img.place(x=0,y=0)
window.mainloop()
但是,这给了我错误:
TclError:图像“pyimage3”不存在
我已经在论坛上搜索了这方面的内容,但只能找到与代码中包含多个 Tk() 实例相关的答案,但我将代码简化为上述代码,但它不起作用。
图像已正确命名并包含在与 Python 文件相同的文件夹中。如果我尝试使用 JPEG 或 GIF 格式的不同图像,也会出现同样的错误。如果我尝试将多行放入一个命令中,也会发生相同的错误。我已经安装了枕头。
【问题讨论】:
-
我无法重现此错误(Python 2.7,Pillow 3.4.2)。你用的是什么版本?
-
我正在使用 Python 3.6 和 Pillow 4.1.1 @asongtoruin 是否值得卸载 Python 3 并改用 Python 2 重试?
-
@Rickson 我确实看过它,但该解决方案似乎不适用于这个问题,因为我的代码中只有一个 Tk() 实例。我尝试按照解决方案的建议将其更改为 TopLevel() 但随后出现错误“模块'tkinter'没有属性'TopLevel'”
-
更新:令人尴尬的是,我拼错了“Toplevel”。它现在使用此命令工作。对于那个很抱歉。但是,现在会弹出一个多余的第二个窗口 - 我该如何摆脱这个?我知道我可以使用 xyz.withdraw() 方法,但我不知道如何“抓取”这个新窗口,因为我没有创建它并且它没有名称?
标签: python image tkinter python-imaging-library pillow