Ich mag ein eigenes Widget erstellen, mywidget, die einen Kopf und einen Körper zusammengesetzt ist.Kivy Widget mit dynamischem Typ
Manchmal ist der Kopf würden ein Box-Layout, dh ein Etikett und der Körper sein:
<[email protected]>:
Label:
id: header
text: "Title"
BoxLayout:
id: body
Aber manchmal ich zu einer Gruppe in einem TabbedPanel mehrere von diesen will, in diesem Fall, mywidget sollte so verhalten:
<[email protected]>:
text: "Title"
BoxLayout:
id: body
das heißt, mywidget eine andere Sache je nach sein sollte, wer seine Eltern ist (ein Tabbedpanel oder irgendetwas anderes), die mit MyWi nachgewiesen werden kann dget.on_parent
ich den Standard-Weg weiß, es zu tun ist, zwei verschiedene Widgets zu definieren, MyWidget_Tabbed und MyWidget_individual, von Typen TabbedpanelItem und BoxLayout jeweils, aber konzeptionell diese beiden sind wirklich die gleichen, nur, dass sie entweder gruppiert sind oder nicht gruppierten
Wie erreichen?
Ich denke über 3 Klassen: MyWidgetGrouped (TabbedPanelItem), MyWidgetUngrouped (BoxLayout) und MyWidget. In KV wird nur MyWidget verwendet. Dann, in mywidget.on_parent, werde ich mywidget .__ class__ in entweder MyWidgetGrouped oder MyWidgetUngrouped ändern (und vielleicht muss ich auch __init__ aufrufen und __dict__ setzen, und andere Dinge)
Hallo! Danke für die Antwort. Ich habe versucht mit Mehrfachvererbung aber konnte es nicht arbeiten lassen. Ich habe die Frage bearbeitet, schau sie dir an –