Python 在tkinter中嵌入matplotlib:鼠标悬停时,图形会四处移动

Python 在tkinter中嵌入matplotlib:鼠标悬停时,图形会四处移动,python,matplotlib,tkinter,Python,Matplotlib,Tkinter,编辑:我想出来了!我会把我的答案写在答案里,以防有人犯和我一样粗心的错误。:) 在Tkinter gui中嵌入Matplotlib图形时遇到一些问题。以下是我用来创建该图的代码片段: def create_plt(self, images, labels): num = len(images) fig = Figure() axes = fig.subplots(nrows=1, ncols=num) for ind, img in enumerate(imag

编辑:我想出来了!我会把我的答案写在答案里,以防有人犯和我一样粗心的错误。:)

在Tkinter gui中嵌入Matplotlib图形时遇到一些问题。以下是我用来创建该图的代码片段:

def create_plt(self, images, labels):
    num = len(images)

    fig = Figure()
    axes = fig.subplots(nrows=1, ncols=num)
    for ind, img in enumerate(images):
        axes[ind].imshow(img)
        axes[ind].set_title(labels[ind])

    canvas = FigureCanvasTkAgg(fig, master=self.itemframe)
    canvas.draw()

    toolbar = NavigationToolbar2Tk(canvas, self.itemframe, pack_toolbar=False)
    toolbar.update()

    toolbar.pack(side=tk.BOTTOM, fill=tk.X)
    widget = canvas.get_tk_widget()
    widget.pack(side=tk.TOP, fill=tk.BOTH, expand=1)
这段代码要做的就是添加我并排传入的图像/标签的子图,这样用户就可以放大和缩小这些图像并四处平移

一开始看起来不错,但当我在选择“平移”或“缩放”工具后将鼠标悬停在它上面时,整个绘图会剧烈移动,调整自身大小,工具栏消失,通常会出现问题


我怀疑我的包装有误,但我不知道是什么。任何帮助都将不胜感激

结果是,我试图放置小部件的框架,
self.itemframe
,大小不正确。它太小了——大约400x300,当时小部件的大小要大得多,所以每次GUI更新并出现故障时,它都必须调整自己的大小。 通过使用更大的大小实例化self.itemframe修复了此问题