簡體   English   中英

使用KV語言的Kivy Garden Graph

[英]using Kivy Garden Graph in KV language

如何在kv文件中使用kivy模塊garden.graph 我只找到了解釋如何在主python腳本中使用它的文檔。

我在python文件中導入了kivy.garden.graph ,我可以在kv文件中添加Graph ,但是我沒有找到任何文檔如何設置大小,圖等。

Graph:
    id: graph_test
    plot: MeshLinePlot

由於我MeshLinePlot is not defined ,所以這會產生錯誤,盡管我在python端導入它。

任何幫助都將受到高度贊賞,也許我們可以將此信息添加到圖形的github自述文件中。

基於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

在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()

我已將原始測試解決方案更改為更具描述性的名稱。 希望我沒有犯任何錯誤。 如果解決方案不完整,請告訴我。

有同樣的問題。 這是解決方案:

一般來說,根據kivy文檔,在kv文件中:

#:import name x.y.z

相當於:

from x.y import z as name

所以你應該使用以下內容:

#:import MeshLinePlot kivy.garden.graph.MeshLinePlot

在我的情況下使用Graph類,但說實話,我還沒有設法將這個圖添加到圖表中。

我認為惡劣的是正確的軌道。 使用#:import應該能夠導入文件。

在kv文件中寫這個:

#:import MeshLinePlot

它應該能夠導入模塊,如kv文檔所示,也

Mattis Asp的答案非常有幫助,但對我來說並不適用。 我是新手,所以也許這些事情太明顯,不需要陳述。 但是如果它幫助了我這個級別的其他人,我不得不:

  1. 縮進kv文件中Graph:聲明下的屬性(從kv解析器中獲取“聲明后的無效數據”異常)。

  2. 添加這些包括:

    語言:lang-py

     from kivy.properties import ObjectProperty from kivy.app import App from kivy.uix.widget import Widget 

到python文件的頂部。

  1. 將kv文件命名為與app類定義匹配,所以:graphLayout.kv(我把它稱為graph.kv所以它只是被忽略了 - 新手的錯誤!)

  2. 我為graph_test獲取了“無效的屬性名稱”:graph_test。 所以我評論說出來並使用了id,改變了行

     self.graph_test.add_plot(plot) 

    至:

     self.ids["graph_test"].add_plot(plot) 

我敢打賭至少其中一些變化與kivy的版本差異有關,所以為了清楚起見,我使用的是kivy 1.9.1和python 2.7.13。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM