Python

python kivyを使ったstackレイアウト

2017年10月2日

Stackレイアウト

Stackレイアウトについて、試してみたいと思います。

Stackレイアウトとは

子のレイアウトを、水平・垂直にレイアウト内に自動的に収納するような感じです。

実装

main.pyというファイルを作成して実装します。

ソースコード

''' stack layout sample '''
from kivy.app import App
from kivy.uix.stacklayout import StackLayout
from kivy.uix.button import Button


class MyApp(App):
    """
    MyApp here
        :param App:
    """

    def build(self):
        """
        build here
            :param self:
        """
        stacklayout = StackLayout()
        for i in range(30):
            btn = Button(text=str(i), width=(40 + i * 5))
            btn.size_hint = (None, 0.15)
            stacklayout.add_widget(btn)

        return stacklayout


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

ソースコードの説明

モジュールはStackLayoutを読み込みます。

複数の子のレイアウトを準備するのが面倒なので、ループで作成します。

ボタンを30個作成して、確認してみます。

確認

実装した内容を確認します。

python3.6.2 kivy stack layout

タイル風にボタンが表示されました。

まとめ

Stackレイアウトの実装を行いました、ラベルを自動的に配置してくれます。

やり方次第では、メトロメニューとか作れるとか思いました。

アイディア次第では、いろいろな事が出来そうですね。

Scatterレイアウトについて
python kivyのScatterレイアウトについて
前回Scatter Layoutについて行いましたが、Scatterだけ動かす場合はどうするのと思いました。 Scatter Layoutは、レイアウトを丸ごと動かす感じに使ってりするけど、ScatterはUIオブジェクト単位っぽいです。 ...

続きを見る

-Python
-,