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



我正在使用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)

这产生了错误消息"0";AttributeError:"AxesImage"对象没有属性"set_canvas"我不知道该怎么解释。我试过用tkinter的PhotoImage进行实验,它也会产生类似的错误。

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

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

最新更新