Пробел между холстом и сеткой в ​​Киви - PullRequest
0 голосов
/ 06 ноября 2019

Я новичок в 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 (и объектно-ориентированном программировании в целом) и буду очень признателен за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...