滚动条在 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 以便能够查看所有子图。
我知道已经发布了类似的问题,但我尝试按照每个解决方案进行操作,但没有成功。
我有一个使用 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 以便能够查看所有子图。