Setting the color of a Kivy Svg

Viewed 326

I was under the impression that svg worked like a canvas instruction. However, I am unable to get the svg to change color. Part of the code below is using the code provided in the sample at Kivy's github.

with self.canvas:
     Color(0.3833, 1.0, 0.0)

Entire Code

import sys
from glob import glob
from kivy.uix.scatter import Scatter
from kivy.app import App
from kivy.graphics.svg import Svg
from kivy.core.window import Window
from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder
from random import randint
from kivy.graphics import *

Builder.load_string("""
<SvgWidget>:
    do_rotation: False
<FloatLayout>:
    id: svg_holder
    canvas.before:
        Color:
            rgb: (1, 1, 1)
        Rectangle:
            pos: self.pos
            size: self.size
""")


class SvgWidget(Scatter):

    def __init__(self, filename, **kwargs):
        super(SvgWidget, self).__init__(**kwargs)
        with self.canvas:
            Color(0.3833, 1.0, 0.0)
            svg = Svg(filename)
        self.size = svg.width, svg.height

    def remove(self):
        print('remove', self)


class SvgApp(App):

    def build(self):
        self.root = FloatLayout()

        for i in range(6):

            svg = SvgWidget('star.svg', size_hint=(None, None))
            self.root.add_widget(svg)
            svg.scale = randint(1,4)
            svg.center = randint(0,Window.width), randint(0,Window.height)


if __name__ == '__main__':
    SvgApp().run()
1 Answers
Related