使用KV语言的Kivy Garden Graph

use*_*948 10 python graph kivy

如何garden.graph在kv文件中使用kivy模块?我只找到了解释如何在主python脚本中使用它的文档.

我导入了kivy.garden.graphpython文件,我可以Graph在kv文件里面添加,但是我没有找到任何文档如何设置大小,图等.

Graph:
    id: graph_test
    plot: MeshLinePlot
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误MeshLinePlot is not defined,虽然我在python端导入它.

任何帮助都将受到高度赞赏,也许我们可以将此信息添加到图形的github自述文件中.

Mat*_*Asp 5

基于 piwnk 的回答:

我将此添加到 .kv 文件中:

#:import MeshLinePlot kivy.garden.graph.MeshLinePlot
<SetGraph>:
    graph_test : graph_test
    Graph:
    id: graph_test
    plot: MeshLinePlot
    xlabel:'X'
    ylabel:'Y'
    x_ticks_minor:5
    x_tics_major:25
    y_ticks_major:1
    y_grid_label:True
    x_grid_label:True
    padding:5
    x_grid:True
    y_grid:True
    xmin:-0
    xmax:100
    ymin:-1
    ymax:1
    pos: 0, root.height / 6
    size: root.width * 2 / 3 , root.height * 18 / 24
Run Code Online (Sandbox Code Playgroud)

在 main.py 中,我添加了:

from math import sin
from kivy.garden.graph import Graph, MeshLinePlot

class SetGraph(Widget):
    graph_test = ObjectProperty(None)

    update_graph(self):
         plot = MeshLinePlot(color=[1, 0, 0, 1])
         plot.points = [(x, sin(x / 10.)) for x in range(0, 101)]
         self.graph_test.add_plot(plot)

class graphLayoutApp(App):
    def build(self):
        disp = SetGraph()
        disp.update_graph()
        return disp


if __name__ == '__main__':
    graphLayoutApp().run()
Run Code Online (Sandbox Code Playgroud)

我已将原始测试解决方案更改为更具描述性的名称。希望我没有犯任何错误。如果解决方案不完整,请告诉我。


小智 0

我认为恶劣是在正确的轨道上。使用#:import 应该能够导入文件。

在 kv 文件中写入:

#:import MeshLinePlot
Run Code Online (Sandbox Code Playgroud)

它应该能够导入模块,正如kv 文档所示,