kivy - Layout bzw. Elemente schachteln

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
tiloprobst
User
Beiträge: 2
Registriert: Donnerstag 5. März 2020, 13:32

Hi,

ich fange gerade an, kivy zu nutzen und raffe nicht wie ich Layoutelemente schachteln kann. Wenn ich den Code unten nutze, kriege ich entweder einen

Code: Alles auswählen

AttributeError: 'kivy.graphics.vertex_instructions.Rectangle' object has no attribute 'fbind'
oder, besonders beliebt,

Code: Alles auswählen

 kivy.uix.widget.WidgetException: add_widget() can be used only with instances of the Widget class.
Mein Ziel wäre, den Bildschirm in 2/3 oben und 1/3 unten zu teilen, und den oberen Bereich dann wieder in 2/3 links und 1/3 rechts. Wie kann ich also Layouts schachteln? Auf der kivy Website finden sich jede Menge Beispiele, aber nix zu komplexen Layouts und hier finden sich unter "Nesting Layouts" nur eine zynische Bemerkung.

Code: Alles auswählen

<Interface>:
	BoxLayout:
		orientation: 'vertical'
		canvas:
			Color:
				rgba: .2, .2, .2, 1.
		BoxLayout:
			orientation: 'horizontal'
			size_hint_y: .8
			Widget:
				size_hint_x: .62
				canvas:
					Color:
						rgba: .4, .4, .4, 1.
			Widget:
				size_hint_x: None
				canvas:
					Color:
						rgba: .4, .4, .4, 1.
	Widget:
		canvas:
			Color:
				rgba: .5, .5, .5, 1.
		size_hint_y: .3
		Rectangle:
			size_hint_x: None
__deets__
User
Beiträge: 14536
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bin kein Kivy Kenner, aber komisch sieht für mich aus, dass dein Äußeres Box Layout das untere Widget nicht enthält. Muss das da nicht rein?
poldi
User
Beiträge: 20
Registriert: Sonntag 19. April 2020, 08:35

Vermutlich beziehen sich die Fehlermeldungen nicht auf die KV language, dann würde eine Builder Load Exception kommen. add_widget funktioniert nur wenn man auch von Widget oder Layout erbt. Bei 'fbind' würde ich einfach 'bind' versuchen.
Antworten