положение gridlayout внутри gridlayout kivy - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь расположить gridlayout (который содержит 4 ввода текста) в центре другого gridlayout (это rootwidget- ResgistrationWindow в моем случае) в kivy.but, кажется, ничего не работает.

Это мой файл .kv, а виджет root представляет собой сетку

<RegistrationWindow>
cols:1
canvas.before:
    Rectangle:
        size: self.size
        pos:self.pos
        source:"emotion.jpg"

GridLayout:
    cols: 2
    size_hint: None,None
    size:root.width,root.height/14
    Label:
        text: "Button 1"
        size_hint_x:0.95
    Button:
        text: "X"
        size_hint_x: 0.05

GridLayout:
    cols:1
    size_hint: None, None
    size:root.width, root.height/2
    TextInput:
        multiline:False
    TextInput:
        multiline:False
    TextInput:
        multiline:False
    TextInput:
        multiline:False

А это мой файл .py

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.lang.builder import Builder


class RegistrationWindow(GridLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)


kv = Builder.load_file("emotions.kv")


class RegistrationApp(App):
    def build(self):
        return RegistrationWindow()


if __name__ == "__main__":
    RegistrationApp().run()

1 Ответ

0 голосов
/ 12 апреля 2020

Я думаю, что ваша проблема заключается в отступах. Поскольку вы хотите добавить свой GridLayouts в вашем RegistrationWindow, ваш файл .kv должен выглядеть примерно так:

(Вы можете переставить GridLayouts дальше, как вам нравится, или сделать еще один отступ для GridLayout, чтобы поместить его в другой GridLayout .)

<RegistrationWindow>
    cols:1
    canvas.before:
        Rectangle:
            size: self.size
            pos:self.pos
            source:"emotion.jpg"

    GridLayout:
        cols: 2
        size_hint: None,None
        size:root.width,root.height/14
        Label:
            text: "Button 1"
            size_hint_x:0.95
        Button:
            text: "X"
            size_hint_x: 0.05

    GridLayout:
        cols:1
        size_hint: None, None
        size:root.width, root.height/2
        TextInput:
            multiline:False
        TextInput:
            multiline:False
        TextInput:
            multiline:False
        TextInput:
            multiline:False
...