Python 如何在tkinter根窗口中将图像文件(jpeg或png)嵌入到图形画布上?

Python 如何在tkinter根窗口中将图像文件(jpeg或png)嵌入到图形画布上?,python,matplotlib,tkinter,Python,Matplotlib,Tkinter,我正在使用tkinter编写GUI,在脚本启动时,我希望根窗口显示由简单图像文件(最好是jpeg或png)组成的画布。以下是我迄今为止的尝试: from tkinter import Tk from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib import pyplot as plt import matplotlib.image as mpimg root = Tk() root.wm_

我正在使用tkinter编写GUI,在脚本启动时,我希望根窗口显示由简单图像文件(最好是jpeg或png)组成的画布。以下是我迄今为止的尝试:

from tkinter import Tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib import pyplot as plt
import matplotlib.image as mpimg

root = Tk()
root.wm_title("My Window")
root.geometry('1500x1000')
root.configure(bg='lightgrey')

background = mpimg.imread('background.png')
fig=plt.imshow(background)
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()
canvas.get_tk_widget().pack(side=TOP)

这会产生错误消息,“AttributeError:‘AxeImage’对象没有属性‘set_canvas’”,我不知道如何解释。我试过用tkinter的PhotoImage进行实验,这会产生类似的错误。

fig
不是matplotlib
Figure
对象。您需要创建
Figure()
的实例,并使用它保存图像:

fig,ax=plt.subplot()
background=plt.imread('background.png')
ax.imshow(后台)
canvas=FigureCanvasTkAgg(图,主控=根)
canvas.draw()
canvas.get_tk_widget().pack(side=TOP)

您能显示整个错误吗?因为在您的代码中既没有
AxesImage
也没有
set\u canvas
查看