Cod*_*Cat 16 grid tkinter matplotlib
我正在开发一个小的Tkinter GUI来绘制matplotlib图.(它包含几个条目,并根据其内容组装图.)
我根据http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html设计了我的绘图小部件,只使用网格而不是包:
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().grid(row=1,column=4,columnspan=3,rowspan=20)
Run Code Online (Sandbox Code Playgroud)
那部分有效.但是以相同的方式嵌入NavigationToolbar却没有.当我包含这些行时,Tkinter会在没有错误的情况下崩溃:
toolbar = NavigationToolbar2TkAgg( canvas, root )
canvas._tkcanvas.grid(row=22,column=4)
Run Code Online (Sandbox Code Playgroud)
我知道这是因为NavigationToolbar调用pack
内部,并pack
与grid
合不来.但是,我喜欢网格,并且不愿重新设计我的整个GUI只是为了能够使用NavigationToolbar.
有解决方法,所以我可以通过网格使用NavigationToolbar2TkAgg吗?(我已经找到了意见,"继承和过载" 在这里,但不知道该怎么做.)
任何帮助非常感谢!
Bry*_*ley 14
你能创建一个空框架,然后放入NavigationToolbar
那个框架吗?我假设NavigationToolbar
遗嘱将自己包装在那个框架中.然后,您可以在框架上使用网格.
这是Bryan Oakleys答案中提到的代码示例(将工具栏添加到框架,将框架放置在网格上):
fig = Figure(figsize=(5, 5), dpi=100)
canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().grid(row=1,column=4,columnspan=3,rowspan=20)
# here: plot suff to your fig
canvas.draw()
############### TOOLBAR ###############
toolbarFrame = Frame(master=root)
toolbarFrame.grid(row=22,column=4)
toolbar = NavigationToolbar2TkAgg(canvas, toolbarFrame)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9312 次 |
最近记录: |