在Kivy中显示SVG文件

时间:2019-06-03 11:39:58

标签: python kivy

我目前正在尝试在Kivy(Python 3.5)中显示SVG文件,但无法弄清楚如何使用KV语言来实现。

有人能指出我正确的方向吗? 我发现此https://github.com/kivy/kivy/blob/master/examples/svg/main.py并没有帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

from kivy.uix.scatter import Scatter
from kivy.app import App
from kivy.graphics.svg import Svg
from kivy.uix.floatlayout import FloatLayout
from kivy.lang import Builder


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

class SvgWidget(Scatter):
    def __init__(self, filename):
        super(SvgWidget, self).__init__()
        with self.canvas:
            svg = Svg(filename)
        self.size = svg.width, svg.height


class SvgApp(App):
    def build(self):
        self.root = FloatLayout()

        filename = "path_to_your_svg_file.svg"
        svg = SvgWidget(filename, size_hint=(None, None), pos_hint={'center_x': 0.5, 'top': 1})
        self.root.add_widget(svg)
        svg.scale = 2


if __name__ == '__main__':
    SvgApp().run()