Я использую glade для создания макета приложения GTK и использую приложение python для обработки событий.Я добавил компонент ScrolledWindow:
<child>
<object class="GtkScrolledWindow" id="GraphWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
Теперь я пытаюсь нарисовать диаграмму, используя matplotlib в указанном выше окне.
class WeatherForecastApplicationBuilder(Gtk.Builder):
def __init__(self, *args, **kwargs):
Gtk.Builder.__init__(self, *args, **kwargs)
self.add_from_file("layout.glade")
self.window = self.get_object("WeatherForecastWindow")
self.graph_window = self.get_object("GraphWindow")
self._get_widgets_()
self.connect_signals(self)
self.window.show_all()
Gtk.main()
def _draw_chart_(self):
figure = Figure()
subplot = figure.add_subplot(111)
subplot.plot(
[1, 2, 3],
[4, 5, 6],
)
subplot.set(xlabel='Date', ylabel='Temp', title='Temprature Change')
canvas = FigureCanvas(figure)
self.graph_window.add(canvas)
self.window.show_all()
Проблема в том, что высота ScrolledWindow равнафиксированный и не расширяющийся.Я хочу, чтобы это покрыло все окно.Прокручиваемое окно отображается следующим образом:
Как увеличить высоту компонента ScrolledWindow, чтобы закрыть пустое пространство внизу.
Ссылка на полный файл макета поляны.