3

Kivy 言語と Python 言語の概念を行き来するのに苦労しています。私は物事を説明するのが苦手で、特定の問題を説明する方法を考えましたが、それを行うために考えることができる最善の方法は次のとおりです。

ScrollViewApp関数を使用してどのように実装しBuilderますか?

4

1 に答える 1

4

うーん、みたいな

ScrollView:
    size_hint: None, None
    size: 500, 320
    pos_hint: {'center_x': .5, 'center_y': .5}
    do_scroll_x: False

    GridLayout:
        cols: 1
        padding: 10
        spacing: 10
        size_hint_y: None
        height: self.minimum_height

        ScrollButton:
            text: '1'
        ScrollButton:
            text: '2'
        ScrollButton:
            text: '3'
        ScrollButton:
            text: '4'
        ScrollButton:
            text: '5'
        ScrollButton:
            text: '6'

<ScrollButton@Button>
    size_hint: None, None
    size: 480, 40

ここでは、しかし、子を動的に作成する方法は実際にはありません (まあ、方法はありますが、それらは醜いです)。子をpythonから内部に配置します(ドキュメントで説明されているように、IDを使用します)。

編集:アプリとObjectPropertyを使用したより完全なバージョン

kv ファイル (scroll.kv):

ScreenManager:
    Screen:
        ScrollView:
            size_hint: None, None
            size: 500, 320
            pos_hint: {'center_x': .5, 'center_y': .5}

            GridLayout:
                cols: 1
                padding: 10
                spacing: 10
                height: self.minimum_height
                size_hint: None, None
                do_scroll_x: False
                id: container

<ScrollButton>
    size_hint: None, None
    size: 480, 40

python ファイル (main.py):

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

class ScrollButton(Button):
    pass

class ScrollApp(App):
    def build(self):
        super(ScrollApp, self).build()
        container = self.root.ids.container
        for i in range(30):
            container.add_widget(ScrollButton(text=str(i)))
        return self.root   # return root does not work

if __name__ == '__main__':
    ScrollApp().run()
于 2013-06-05T17:02:52.307 に答える