首页 > 解决方案 > SVG 质量极差 [kivy]

问题描述

我正在尝试为我的应用程序制作 svg 小部件。我使用名为 Figma 的应用程序创建了 SVG。问题是它们的质量极差。为什么会这样,有解决方案吗?

左 - Figma 素描 | 右 - Kivy 窗口

在此处输入图像描述

Python代码

from kivy.graphics.svg import Svg
from kivy.uix.scatter import Scatter

class SvgWidget(Scatter):

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

class gui(Widget):     #Main Widget
    pass
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        #PNG Widgets
        self.add_widget(body())
        self.add_widget(headerBox())
        self.add_widget(footerBox())

        #SVG Widgets
        self.add_widget(SvgWidget("./assets/VERSION 1.0.svg", size_hint=(65, 16), pos=(182, 3))) #Version text
        self.add_widget(SvgWidget("./assets/Application Name.svg", size_hint=(225, 26), pos=(8, 228-20))) #Header Text
        self.add_widget(SvgWidget("./assets/LICENSE ACTIVATED.svg", size_hint=(225, 26), pos=(8, 228-32))) #License

class MainApp(App):
    def build(self):
        Window.borderless = True
        self.gui = gui()
        return self.gui

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

SVG - https://mega.nz/file/E3oUBCwA#p_Ap2qIx4hc3fT0UN19T0P3TiDDry6J_Ss-zOkKzsSU

标签: pythonkivy

解决方案


你可以试试 Nim 的 fidget gui 库。它有一个导出插件,直接在 Figma 中。但它非常初级。Fidget2 正在开发中。你也可以试试 nimpy,它是一个 nim 到 py 的桥。使用绘制出色 svg 的 Nim 侧 pixie 创建图像,并将其作为图像读取(或者可以作为 GL 上下文执行?)在 python 端(python 端导入 Nim 创建的共享对象 .so 二进制库)。非常容易的互操作性,并且 Nim 是一种编写代码的乐趣。但是它将功能部分移到了 Nim,并且您需要将绘图数据传回,而我还没有尝试过。


推荐阅读