Kivy Sidebar плюс макет контента - PullRequest
0 голосов
/ 24 февраля 2019

Мне нужна правая боковая панель фиксированной ширины в моем приложении kivy со списком кнопок и основной областью, где можно рисовать, я не уверен, какой правильный способ это сделать (т.е. какой макет), вот где яна данный момент:

layoutApp.py ...

from kivy.app import App

class layoutApp(App):
    pass

if __name__ == '__main__':
    layoutApp().run()

И layoutApp.kv ...

BoxLayout:
    orientation: 'vertical'
    BoxLayout:
        Button:
            size_hint_x: 2
        BoxLayout:
            orientation: 'vertical'
            size_hint_x: 0.5
            Button:
            Button:
            Button:
            Button:

, который производит:

enter image description here

Проблема заключается в том, что размеры являются относительными, то есть ширина правой боковой панели изменяется в зависимости от размера / размера экрана, которыйне предполагаемое поведение.

Спасибо!

Ответы [ 2 ]

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

Небольшие изменения в @John_Anderson с тонкими верхними выровненными кнопками:

BoxLayout:
    id: top_box
    orientation: 'vertical'
    BoxLayout:
        Button:
            size_hint_x: None
            width: top_box.width - bottom_box.width
        BoxLayout:
            padding: 4
            id: bottom_box
            orientation: 'vertical'
            size_hint_x: None
            width: 200
            spacing: 2
            Button:
                id: button_1
                background_normal: ''
                background_color: .2, .2, .2, 1
                text: 'Button 1'
                color: .6, .6, .6, 1
                size_hint_x: None
                size_hint_y: None
                width: 192
                height: 40
            Button:
                id: button_2
                background_normal: ''
                background_color: .2, .2, .2, 1
                text: 'Button 2'
                color: .6, .6, .6, 1
                size_hint_x: None
                size_hint_y: None
                width: 192
                height: 40
            Button:
                id: button_3
                background_normal: ''
                background_color: .2, .2, .2, 1
                text: 'Button 3'
                color: .6, .6, .6, 1
                size_hint_x: None
                size_hint_y: None
                width: 192
                height: 40
            Button:
                id: button_4
                background_normal: ''
                background_color: .2, .2, .2, 1
                text: 'Button 4'
                color: .6, .6, .6, 1
                size_hint_x: None
                size_hint_y: None
                width: 192
                height: 40
            Widget:


Результаты:

enter image description here

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

Вы можете установить ширину боковой панели, а затем настроить большую ширину кнопки, используя ids:

BoxLayout:
    id: top_box
    orientation: 'vertical'
    BoxLayout:
        Button:
            size_hint_x: None
            width: top_box.width - bottom_box.width
        BoxLayout:
            id: bottom_box
            orientation: 'vertical'
            size_hint_x: None
            width: 150
            Button:
            Button:
            Button:
            Button:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...