ヘッダとボディで構成されるMyWidgetというカスタムウィジェットを作成したいとします。動的タイプのkivyウィジェット
時には、ヘッダはすなわちラベルと体ボックスのレイアウト、次のようになります。その場合には、
<[email protected]>:
Label:
id: header
text: "Title"
BoxLayout:
id: body
しかしTabbedPanelにおけるこれらのいくつかのグループに私が欲しいの回で、 MyWidgetはのように振る舞う必要があります。
<[email protected]>:
text: "Title"
BoxLayout:
id: body
であること、はMyWidgetはMyWiで検出することができ、その親(Tabbedpanelまたは何か他)、誰であるかに応じて、異なるものでなければなりませんdget.on_parent
TabbedpanelItemとBoxLayoutの2つの異なるウィジェットMyWidget_TabbedとMyWidget_individualを定義するのが標準的な方法ですが、概念的にはこれらの2つは実際には同じです。グループ化されているかグループ化されていない
これを行うには?
私は、MyWidgetGrouped(TabbedPanelItem)、MyWidgetUngrouped(BoxLayout)、MyWidgetの3つのクラスについて考えています。 KVでMyWidgetのみが使用されます。次に、mywidget.on_parentでは、mywidget.__ class__をMyWidgetGroupedまたはMyWidgetUngroupedに変更します(おそらく、__init__を呼び出して__dict__などを設定する必要があります)
こんにちは!回答ありがとうございます。私は複数の継承を試みましたが、それを動作させることはできませんでした。私は質問を編集して、見てみましょう –