我正在开发一个小的Tkinter GUI来绘制matplotlib-图。 (它包含一些条目,并根据其内容来组装图。)

我已经根据http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html设计了绘图小部件,只有我使用grid而不是pack:

canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().grid(row=1,column=4,columnspan=3,rowspan=20)

那部分起作用。但是不会以相同的方式嵌入NavigationToolbar。当我添加以下行时,Tkinter可以无故障地分解:
toolbar = NavigationToolbar2TkAgg( canvas, root )
canvas._tkcanvas.grid(row=22,column=4)

我知道这是因为NavigationToolbar在内部调用pack,而packgrid不相处。但是,我喜欢网格,并且不希望不得不重新设计我的整个GUI,以便能够使用NavigationToolbar。

有没有解决方法,所以我可以通过网格使用NavigationToolbar2TkAgg? (我已经找到了“子类和重载” here的建议,但不知道该怎么做。)

任何帮助,不胜感激!

最佳答案

您可以创建一个空框架,然后将NavigationToolbar放入该框架吗?我假设NavigationToolbar然后将自身打包在该帧中。然后,您可以在框架上使用网格。

10-08 12:44