rotating a label AttributeError: 'NoneType' object has no attribute 'children'

310 views
Skip to first unread message

Cagri Cuhadaroglu

unread,
Mar 13, 2014, 5:17:31 PM3/13/14
to kivy-...@googlegroups.com
i am trying to rotate a label
kv1= '''
    BoxLayout:               
        Label:               
            center: self.parent.center
            size: texture_size
            canvas.before:
                PushMatrix
                Rotate:
                    angle: 90
                    origin: self.center
            canvas.after:
                PopMatrix
            text: 'deneme'
    '''
    rot_scatter=Builder.load_string(kv1)

................

a_layout1_hor.add_widget(rot_scatter)

but i get this error i couldnot solve it

    rot_scatter=Builder.load_string(kv1)
  File "/usr/local/lib/python2.7/dist-packages/Kivy-1.8.0-py2.7-linux-x86_64.egg/kivy/lang.py", line 1491, in load_string
    parser = Parser(content=string, filename=fn)
  File "/usr/local/lib/python2.7/dist-packages/Kivy-1.8.0-py2.7-linux-x86_64.egg/kivy/lang.py", line 1049, in __init__
    self.parse(content)
  File "/usr/local/lib/python2.7/dist-packages/Kivy-1.8.0-py2.7-linux-x86_64.egg/kivy/lang.py", line 1122, in parse
    objects, remaining_lines = self.parse_level(0, lines)
  File "/usr/local/lib/python2.7/dist-packages/Kivy-1.8.0-py2.7-linux-x86_64.egg/kivy/lang.py", line 1219, in parse_level
    current_object.children = _objects
AttributeError: 'NoneType' object has no attribute 'children'


Steve B

unread,
Mar 14, 2014, 12:03:44 AM3/14/14
to kivy-...@googlegroups.com
Forgive me for pointing this out but you mean...

 kv1= "   or    kv1= '     and not a triple quote as in  kv1= '''   ???

Just a thought

ZenCODE

unread,
Mar 14, 2014, 1:54:44 AM3/14/14
to kivy-...@googlegroups.com
I'm going to take a flyer here, but try moving all you canvas instructions so they are the first thing in kv....

kv1= '''
    BoxLayout:               
        Label:               
            canvas.before:
                PushMatrix
                Rotate:
                    angle: 90
                    origin: self.center
            canvas.after:
                PopMatrix
            center: self.parent.center
            size: texture_size
            text: 'deneme'
    '''

ZenCODE

unread,
Mar 14, 2014, 4:47:22 AM3/14/14
to kivy-...@googlegroups.com
Okay, I lied. Seems it was simply your indentation level. This works.


kv1= '''
BoxLayout:
    Label:
        canvas.before:
            PushMatrix
            Rotate:
                angle: 90
                origin: self.center
        canvas.after:
            PopMatrix
        center: self.parent.center
        size: self.texture_size
        text: 'deneme'
 '''

Cheers ;-)

aspidites

unread,
Mar 14, 2014, 7:59:13 AM3/14/14
to kivy-...@googlegroups.com
Just reiterating that it was your indentation. That is, you don't need to move your canvas instructions (which I'm sure was just left over from a previous edit).
Reply all
Reply to author
Forward
0 new messages