Изменение размера в Kivy создает пустое пространство между виджетами - PullRequest
0 голосов
/ 23 января 2019

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

Я пробовал использовать "anchor" и "pos", но не могу заставить виджеты оставаться в верхней части окна.

class GUI(App):
    def build(self):
        root = FloatLayout(size_hint=(1, None), size=(Window.width, Window.height))
        sidepanel = BoxLayout(orientation="vertical", size_hint=(None, 1), pos_hint={"x": 0.0, "y": 0.0})
        scroll = ScrollView(pos_hint={"x": 0.2, "y": 0.0})
        layout = BoxLayout(orientation="vertical", spacing=10, size_hint_y=None)

        layout.bind(minimum_height=layout.setter('height'))

        for i in range(50):
            btn = Button(text=str(i), size_hint_y=None, height=30)
            layout.add_widget(btn)


        sidepanel.add_widget(Button(text="Import Photos", size_hint=(1,0.2)))
        sidepanel.add_widget(Button(text="Create Report", size_hint=(1,0.2)))
        sidepanel.add_widget(Button(text="Save?", size_hint=(1,0.2)))
        sidepanel.add_widget(Button(text="Button 4", size_hint=(1,0.2)))


        scroll.add_widget(layout)


        root.add_widget(sidepanel)
        root.add_widget(scroll)

        return root

Я ожидаю, что боковая панель останется прежнего размера, а представление прокрутки, содержащее «макет», изменит размер с окном. И все виджеты должны оставаться в топе.

Стандартное окно

Окно с измененным размером

1 Ответ

0 голосов
/ 25 января 2019

Ваша проблема проистекает из ваших спецификаций размера в вашей корневой директории. Попробуйте использовать:

root = FloatLayout()

, где вы не указываете размер инструкции. Он будет знать, как правильно изменить размер окна автоматически. Как правило, вы хотите избегать одновременного использования size_hint и size в одном виджете. То же самое касается pos_hint и pos.

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