Я новичок в Kivy, и я создал очень простой графический интерфейс для построения графиков данных. Он состоит из графика на холсте фигуры и нескольких кнопок (в настоящее время 4), расположенных в виде сетки.
Проблема в том, что я не могу избежать пустого пространства между кнопками и графикомкак показано ниже.
Ссылка на изображение, так как мой пользователь новичок
Мне бы хотелось, чтобы кнопки имели текущий размер, а график занималоставшееся место, но кажется, что независимо от того, что я пытаюсь, сетка, кажется, всегда занимает 50% от общей высоты.
Файл main и kv включены ниже.
import matplotlib.pyplot as plt
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.garden.matplotlib.backend_kivyagg import FigureCanvas
from kivy.uix.widget import Widget
from kivy.lang import Builder
KV = '''
<Meta>:
orientation: 'vertical'
<Body>:
GridLayout:
width: root.width
cols: 2
Button:
text: 'Button 1'
font_size: 20
Button:
text: 'Button 2'
font_size: 20
Button:
text: 'Button 3'
font_size: 20
Button:
text: 'Button 4'
font_size: 20
'''
Builder.load_string(KV)
class Graph(BoxLayout):
def __init__(self, **kwargs):
super(Graph, self).__init__(**kwargs)
self.add_widget(self.graph())
def graph(self):
global fig1, ax, wid
fig1 = plt.figure()
ax = fig1.add_subplot(111)
ax.plot([],[])
wid = FigureCanvas(fig1)
return wid
class Body(Widget):
pass
class Meta(BoxLayout):
def __init__(self, **kwargs):
super(Meta, self).__init__(**kwargs)
self.add_widget(Graph())
self.add_widget(Body())
class Builder(App):
def build(self):
return Meta()
if __name__ == "__main__":
Builder().run()
Как я уже сказал, я новичок в Kivy (и объектно-ориентированном программировании в целом) и буду очень признателен за помощь.