X-Git-Url: https://git.jsancho.org/?p=kivyforms.git;a=blobdiff_plain;f=kivyforms%2Fformcanvas.py;h=3c6ab6003aba2f38bdf61d54c302260307e65721;hp=a1b7058ad0141df64878494e93896615c825c98c;hb=0aa8dfced2da3c8255a6c6da9c3d9cc9c9e5566b;hpb=d435373e9e5b0a41b2a3a1a89c3ebd5653b0c6e1 diff --git a/kivyforms/formcanvas.py b/kivyforms/formcanvas.py index a1b7058..3c6ab60 100644 --- a/kivyforms/formcanvas.py +++ b/kivyforms/formcanvas.py @@ -128,6 +128,8 @@ class FormCanvas(BoxLayout): height=self.widgets_height, size_hint=self.widgets_size_hint ) + widget.height = self.widgets_height + widget.size_hint = self.widgets_size_hint g.add_widget(widget) self._canvas.add_widget(g) @@ -201,18 +203,19 @@ class FormCanvas(BoxLayout): spacing=self._canvas.spacing[0] ) - def export_to_kv(self, widget, indent=''): + def export_to_kv(self): kv = """StackLayout: orientation: '{orientation}' padding: {padding} spacing: {spacing} -""".format(orientation=self.orientation, padding=self.padding, spacing=self.spacing) +""".format(orientation=self._canvas.orientation, padding=self._canvas.padding, spacing=self._canvas.spacing) indent = ' ' - stack = [self] + stack = [self._canvas] widgets = self.walk(restrict=True) next(widgets) # the first widget is the FormCanvas + next(widgets) # and the second is the inner StackLayout for widget in widgets: if not isinstance(widget, Grabbable): # Look for the widget position inside the tree @@ -228,9 +231,15 @@ class FormCanvas(BoxLayout): stack.append(widget) # Widget attributes - kv += """{indent}height: 40 -{indent}size_hint: (1., None) -{indent}text: '{text}' -""".format(indent=indent*len(stack), text=widget.text) + for attr in ('height', 'size_hint', 'text', 'spacing'): + if hasattr(widget, attr): + value = getattr(widget, attr) + if type(value) is str: + value = "'" + value + "'" + kv += "{indent}{attr}: {value}\n".format( + indent=indent*len(stack), + attr=attr, + value=value + ) return kv