Центр радиокнопок в кивийском номере - PullRequest
0 голосов
/ 10 марта 2020

Я хочу центрировать радиокнопки (флажок с группой и меткой для текста) в файле kv. Я добавил их в ScrollView, но между этими виджетами много места.

Код:

        ScrollView:
            size_hint: (1, 1)

            GridLayout:
                cols: 1
                padding: 0
                spacing: 0, 0
                size_hint: (1, None)
                height: self.minimum_height

                BoxLayout:
                    orientation: "horizontal"
                    size_hint_x: 0.60
                    spacing: 0
                    padding: 0
                    pos_hint: {"center_x": 0.5}
                    size_hint_y: None

                    CheckBox:
                        group: "notIdentReason"
                    Label:
                        text: "Sample rejected"
                        font_size: 24
                        color: 0, 0, 0, 1

                BoxLayout:
                    orientation: "horizontal"
                    size_hint_x: 0.60
                    spacing: 0
                    padding: 0
                    pos_hint: {"center_x": 0.5}
                    size_hint_y: None

                    CheckBox:
                        group: "notIdentReason"
                    Label:
                        text: "Unsubtyping"
                        font_size: 24
                        color: 0, 0, 0, 1

                BoxLayout:
                    orientation: "horizontal"
                    size_hint_x: 0.60
                    spacing: 0
                    padding: 0
                    pos_hint: {"center_x": 0.5}
                    size_hint_y: None

                    CheckBox:
                        group: "notIdentReason"
                    Label:
                        text: "Other"
                        font_size: 24
                        color: 0, 0, 0, 1

Снимок экрана:

enter image description here

Как убрать пространство между радиокнопкой и этикеткой? Благодаря.

1 Ответ

1 голос
/ 10 марта 2020

Я думаю, ключом является использование minimum_size для ваших GridLayout и BoxLayouts, а также для задания размеров его дочерних элементов, CheckBox и Label. Как то так:

ScrollView:
    size_hint: (None, 1)
    width: grid.width
    pos_hint: {'center_x':0.5}

    GridLayout:
        id: grid
        cols: 1
        padding: 0
        spacing: 0, 0
        size_hint: None, None
        size: self.minimum_size
        BoxLayout:
            orientation: "horizontal"
            size_hint: None, None
            size: self.minimum_size
            spacing: 0
            padding: 0

            CheckBox:
                group: "notIdentReason"
                size_hint: None, None
                size: lab.height, lab.height
            Label:
                id: lab
                text: "Sample rejected"
                font_size: 24
                color: 0, 0, 0, 1
                size_hint: None, None
                size: self.texture_size

        BoxLayout:
            orientation: "horizontal"
            size_hint: None, None
            size: self.minimum_size
            spacing: 0
            padding: 0

            CheckBox:
                group: "notIdentReason"
                size_hint: None, None
                size: lab.height, lab.height
            Label:
                text: "Unsubtyping"
                font_size: 24
                color: 0, 0, 0, 1
                size_hint: None, None
                size: self.texture_size

        BoxLayout:
            orientation: "horizontal"
            size_hint: None, None
            size: self.minimum_size
            spacing: 0
            padding: 0

            CheckBox:
                group: "notIdentReason"
                size_hint: None, None
                size: lab.height, lab.height
            Label:
                text: "Other"
                font_size: 24
                color: 0, 0, 0, 1
                size_hint: None, None
                size: self.texture_size
...