如何使用Python中的Tkinter窗口调整matplotlib:pyplot的大小?

时间:2013-09-07 16:08:43

标签: python matplotlib tk

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

before expanding the window after expanding the window

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

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)

1 个答案:

答案 0 :(得分:0)

这很可能与this question有关。要点是使Tk网格单元生长有两个部分:

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

This page包含有关网格布局的更多详细信息。