|
楼主 |
发表于 2023-1-22 13:04:17
|
显示全部楼层
程序中全用的是grid布局 并无报错 添加了以下代码:
f = Figure(figsize=(5, 4), dpi=100)
a = f.add_subplot(111) # 添加子图:1行1列第1个
# 生成用于绘sin图的数据
x = np.arange(0, 3, 0.01)
y = np.sin(2 * np.pi * x)
# 在前面得到的子图上绘图
a.plot(x, y)
# 将绘制的图形显示到tkinter:创建属于main的canvas画布,并将图f置于画布上
canvas = FigureCanvasTkAgg(f, master=main)
canvas.draw() # 注意show方法已经过时了,这里改用draw
canvas.get_tk_widget().pack(side=tkinter.TOP, # 上对齐
fill=tkinter.BOTH, # 填充方式
expand=tkinter.YES) # 随窗口大小调整而调整
# matplotlib的导航工具栏显示上来(默认是不会显示它的)
toolbar = NavigationToolbar2Tk(canvas, main)
toolbar.update()
canvas._tkcanvas.pack(side=tkinter.TOP, # get_tk_widget()得到的就是_tkcanvas
fill=tkinter.BOTH,
expand=tkinter.YES)
并修改为:
f = Figure(figsize=(4, 3), dpi=100)
a = f.add_subplot(111) # 添加子图:1行1列第1个
# 生成用于绘sin图的数据
x = np.arange(0, 3, 0.01)
y = np.sin(2 * np.pi * x)
# 在前面得到的子图上绘图
a.plot(x, y)
# 将绘制的图形显示到tkinter:创建属于main的canvas画布,并将图f置于画布上
canvas = FigureCanvasTkAgg(f, master=main)
canvas.draw() # 注意show方法已经过时了,这里改用draw
canvas.get_tk_widget().grid(column=4, row=1, rowspan=9)
# matplotlib的导航工具栏显示上来(默认是不会显示它的)
toolbar = NavigationToolbar2Tk(canvas, main)
toolbar.update()
canvas._tkcanvas.grid(column=4, row=1, rowspan=9)
报错:_tkinter.TclError: cannot use geometry manager pack inside . which already has slaves managed by grid
简单来说:不能同时使用park() grid()两种布局 |
|