5

我正在尝试在每个框架中构建一个网格,其中有一个 matplotlib 图形。当我调整窗口大小时,图形保持固定大小,并且没有调整大小以适应空白空间。有没有办法让图形根据画布改变它的大小(希望它会随着窗口大小而改变)?

在扩大窗口之前 扩大窗口后

这就是我在每一帧中嵌入的方式:

self._figure = pyplot.figure(figsize=(4,4))       
self._axes = self._figure.add_subplot(111)
self._canvas = FigureCanvasTkAgg(self._figure, master=self._root)
self._canvas.get_tk_widget().grid(row=1,column=1,rowspan = 4)
4

1 回答 1

1

这很可能与这个问题有关。要点是使 Tk 网格单元增长有两个部分:

  • 在应用到您的小部件时使用sticky关键字grid,例如widget.grid(..., sticky=Tkinter.NSEW(Python 2.7) 以使其widget能够在所有四个方向上增长。有关详细信息,请参阅此文档。
  • 通过调用和/或使用所需的行、列和关键字调整大小时,告诉父/主使相应的列/行增长。例如,使第一列占用所有可用空间(只要没有其他列,或者它们没有被类似配置)。有关更多详细信息,请参阅grid_columnconfigure 文档grid_rowconfigure 文档,例如,关于权重如何影响多个列/行。parent.grid_columnconfigure(...)parent.grid_rowconfigure(...)weightparent.grid_columnconfigure(col=0, weight=1)

此页面包含有关网格布局的更多详细信息。

于 2014-12-02T12:40:58.777 回答