滚动条在 Tkinter 图 Canvas 上不起作用

Scrollbar not functioning on Tkinter Figure Canvas

我知道已经发布了类似的问题,但我尝试按照每个解决方案进行操作,但没有成功。

我有一个使用 matplotlib 创建的图形,它具有可变数量的子图。这个图很大,所以很多子图在页面上看不到。

我正在尝试添加一个滚动条以允许用户查看其他子图。滚动条如我所料出现,但根本不起作用。

以下是此页面的部分代码。

class PageTwo(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        canvas = FigureCanvasTkAgg(f,self)
        canvas.draw()

        scroll=Scrollbar(self, orient = VERTICAL)
        scroll.pack(side = RIGHT, fill=tk.BOTH)

        canvas.get_tk_widget().config(yscrollcommand=scroll.set)
        scroll.config(command=canvas.get_tk_widget().yview)

        canvas.get_tk_widget().pack(side=tk.TOP,fill=tk.BOTH,expand = True)

结果如下:

Figure Canvas with Scrollbar

试试这个。您可能没有将 scroolbar 放入 canvas.

class PageTwo(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        canvas = FigureCanvasTkAgg(f,self)
        canvas.draw()

        scroll=Scrollbar(canvas, orient = VERTICAL)
        scroll.pack(side = RIGHT, fill=tk.BOTH)

        canvas.get_tk_widget().config(yscrollcommand=scroll.set)
        scroll.config(command=canvas.get_tk_widget().yview)

        canvas.get_tk_widget().pack(side=tk.TOP,fill=tk.BOTH,expand = True)

所以我改变了这个。 scroll=Scrollbar(self, orient = VERTICAL) 为此scroll=Scrollbar(canvas, orient = VERTICAL)

我能够通过使用以下配置滚动区域来修复滚动条:

canvas.get_tk_widget().config(scrollregion=(0,0,1000,10000))

但是,当我现在滚动时,图形在页面底部原来所在的位置被截断(见图):

Image

我现在正在尝试弄清楚如何扩展 FigureCanvasTkAgg 以便能够查看所有子图。