Tkinter中向预留Canvas空间添加Matplotlib绘图时界面尺寸异常的问题求助
Tkinter中向预留Canvas空间添加Matplotlib绘图时界面尺寸异常的问题求助
我做了一个GUI,里面有个空的tk.Canvas组件,想在运行时把matplotlib的绘图放进去。但添加绘图的时候,它会强制GUI采用绘图的尺寸,而不是使用我预留的Canvas空间,导致界面里的元素都移位了。有没有办法让绘图创建时就和Canvas的尺寸保持一致呢?
最小可复现示例(MWE):
import matplotlib as mpl mpl.use('TkAgg') import tkinter as tk from matplotlib import figure from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg root = tk.Tk() def show_plot(): fig = figure.Figure() ax=fig.add_subplot() ax.scatter([1, 2, 3, 4], [4, 7, 2, 4]) canv = FigureCanvasTkAgg(fig, canvas) canv.draw() canv.get_tk_widget().pack(fill=tk.BOTH, expand=1) canvas = tk.Canvas(root, width=600, height=600) canvas.pack(fill=tk.NONE, expand=0) tk.Button(root, text='show plot', command=show_plot).pack() root.mainloop()
我已经尝试过修改绘图和Canvas的.pack()方法里的fill和expand参数,但没起到作用。
备注:内容来源于stack exchange,提问作者Xoriun
相关产品推荐
相关产品推荐

