Kivyのウィジェットについて~Widgetの一覧~

2019年12月29日

みなさまおはこんばんにちは、せなです

今回はKivyのウィジェットとウィジェットの種類について説明したいと思います

ウィジェットとは

ウィジェットはKivyのGUIインタフェースに表示するもの(ラベルとかボタンetc…)のことです

ウィジェットはKivyのroot.childrenにリスト化して保持されています
リスト内のウィジェットを操作する場合は、以下のメソッドを使用します

  • add_widget(): リスト内に新しいウィジェットを追加
  • remove_widget(): リスト内からウィジェットを削除
  • clear_widgets(): リスト内のすべてのウィジェットを削除
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
class TestWidget(App):
    def build(self):
        root = Widget()
        button = Button(text='Test')
        root.add_widget(button)
        print(root.children)  # [<kivy.uix.button.Button object at 0x0000026342DB2590>]
        root.remove_widget(button)
        print(root.children)  # []
if __name__ == '__main__':
    TestWidget().run()

ウィジェットの種類について

ウィジェットは以下の5種類に分類できます

  • UXウィジェット:「ラベル・ボタン・テキストボックス」などの一般的なウィジェット
  • レイアウト:「ボックスレイアウト・フロートレイアウト」などの配置の方法を指定したりするウィジェット
  • 複合UXウィジェット:「ドロップダウンリスト・ポップアップ」などの複数のウィジェットを組み合わせたウィジェット
  • 図形ウィジェット:Scatter・StencilView
  • スクリーンマネージャー:スクリーンマネージャー

UXウィジェットの種類

UXウィジェットに分類されるウィジェットは以下の10種類です

レイアウトの種類

レイアウトに分類されるウィジェットは以下の8種類です

  • アンカーレイアウト: kivy.uix.anchorlayout
  • ボックスレイアウト: kivy.uix.boxlayout
  • フロートレイアウト: kivy.uix.floatlayout
  • グリッドレイアウト: kivy.uix.gridlayout
  • ページレイアウト: kivy.uix.pagelayout
  • 相対レイアウト: kivy.uix.relativelayout
  • 散布図レイアウト: kivy.uix.scatterlayout
  • スタックレイアウト: kivy.uix.stacklayout

複合UXウィジェットの種類

複合ウィジェットに分類されるウィジェットは以下の9種類です