我正在开发一个小的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
,而pack
和grid
不相处。但是,我喜欢网格,并且不希望不得不重新设计我的整个GUI,以便能够使用NavigationToolbar。有没有解决方法,所以我可以通过网格使用NavigationToolbar2TkAgg? (我已经找到了“子类和重载” here的建议,但不知道该怎么做。)
任何帮助,不胜感激!
最佳答案
您可以创建一个空框架,然后将NavigationToolbar
放入该框架吗?我假设NavigationToolbar
然后将自身打包在该帧中。然后,您可以在框架上使用网格。