当我在tkinter窗口中插入matplotlib图形时,当我启动程序时,会出现额外的弹出窗口。它们不会影响GUI的功能,但有点烦人。在
我已经写了一个基本的脚本来说明这个问题。我通过Spyder查了一下:
import tkinter as tk
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.pyplot import figure as Figure
from matplotlib import pyplot as plt
class MyGUI(tk.Tk):
def __init__(self,master):
self.f=Figure(figsize=(5,5),dpi=100)
self.fig, self.ax= plt.subplots()
self.canvas = FigureCanvasTkAgg(self.fig,master)
self.toolbar=NavigationToolbar2Tk(self.canvas,master)
#self.toolbar.update()
self.canvas._tkcanvas.pack(padx=20, pady=20)
root =tk.Tk()
window=MyGUI(root)
root.mainloop()
当我运行这个,我有三个窗口。一个是根窗口,显示一个空图形和一个工具栏(标记为“tk”)。这是我唯一想要的窗户。然后我得到一个带有工具栏的“Figure 1”窗口和一个带有图形和工具栏的“Figure 2”窗口。
从注释init方法的后半部分来看,问题似乎来自这一部分。在
^{pr2}$然而,我对面向对象编程和tkinter还很陌生,因此没有足够的经验来找出错误所在。有什么想法吗?在
您正在创建两个图形。其中一个是通过
pyplot
创建的。不应该试图在自定义GUI中嵌入pyplot图。完全删除pyplot,只创建一个图形。在相关问题 更多 >
编程相关推荐