Kivy v1.11.1 макет вложенной коробки - PullRequest
0 голосов
/ 14 февраля 2020

Я создал макет Nesteded Box с Kivy, который работает. Но мне нужно вызвать три класса в моем коде Python. Есть ли более элегантный способ сделать это? Например, только один класс в Python?

Python код:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

class HorizLayout1(BoxLayout):
    pass
class HorizLayout2(BoxLayout):
    pass

class VertLayout(BoxLayout):
    pass


class KivyTestsApp(App):
    def build(self):
        return VertLayout()

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

kivytests.kv:

<HorizLayout1>:
    orientation: "horizontal"
    Button:
        text: "1"
    Button:
        text: "2"

<HorizLayout2>:
    orientation: "horizontal"
    Button:
        text: "3"
    Button:
        text: "4"

<VertLayout>:
    orientation: "vertical"
    HorizLayout1:
    HorizLayout2:

1 Ответ

0 голосов
/ 14 февраля 2020

Ваш py может быть таким:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

class VertLayout(BoxLayout):
    pass

class KivyTestsApp(App):
    def build(self):
        return VertLayout()

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

... и ваш kv может быть таким:

<VertLayout>:
    orientation: "vertical"
    BoxLayout:
        Button:
            text: "1"
        Button:
            text: "2"
    BoxLayout:
        Button:
            text: "3"
        Button:
            text: "4"
...