首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将matplotlib嵌入tkinter canvas将打开两个窗口

是因为matplotlib默认会创建一个独立的窗口来显示图形,而tkinter也会创建一个窗口来显示应用程序的界面。因此,当将matplotlib绘制的图形嵌入到tkinter的canvas中时,会同时打开两个窗口。

要解决这个问题,可以通过使用matplotlib的FigureCanvasTkAgg类来将图形嵌入到tkinter的canvas中,而不是使用默认的窗口显示图形。下面是一个示例代码:

代码语言:txt
复制
import tkinter as tk
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# 创建tkinter窗口
root = tk.Tk()

# 创建matplotlib的Figure对象
fig = Figure()

# 在Figure对象上创建子图
ax = fig.add_subplot(111)
ax.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])

# 创建FigureCanvasTkAgg对象,将Figure对象嵌入到tkinter的canvas中
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.draw()

# 在tkinter窗口中放置canvas
canvas.get_tk_widget().pack()

# 运行tkinter主循环
root.mainloop()

在这个示例代码中,我们首先创建了一个tkinter窗口,然后创建了一个matplotlib的Figure对象,并在其上创建了一个子图。接下来,我们使用FigureCanvasTkAgg类将Figure对象嵌入到tkinter的canvas中,并将canvas放置在tkinter窗口中。最后,通过运行tkinter的主循环来显示窗口和图形。

这样,就可以实现将matplotlib嵌入到tkinter的canvas中,而不会打开额外的窗口。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券