2016-12-24 47 views
0

我開始與kivy,我已經遇到了一個我無法解決的障礙。我只需要在kv文件中創建一個動態的Ellipse類,然後將其投影到一個小部件的畫布上。動態類沒有效果 - Ellipse

我看到的是它被識別爲一個橢圓,但沒有一個屬性被接管(最顯着的是大小)。

我在下面給出了我的代碼和我看到的屏幕截圖。請注意,在一個Ellipse中的額外尺寸是爲了讓您的觀看更加方便,從而使問題更加直觀。沒有它,我會看到三個非常大的圓圈。

我在ubuntu 16.04上做了這個。在這情況下,重要的是

非常感謝您幫助我了:)

main.py

#!usr/bin/python3 

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


class SchemeEditor(Widget): 
    def __init__(self,**kwargs): 
     super(SchemeEditor, self).__init__(**kwargs) 


class SchemeApp(App): 
    def build(self): 
     self.load_kv('scheme.kv') 
     return SchemeEditor() 


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

scheme.kv

#:kivy 1.9.1 

<[email protected]>: 
    size: 10, 10 
    color: 10, 0, 0 

<SchemeEditor>: 
    canvas: 
     Dot: 
      id: 1 
      pos: root.width/2, (root.width/3) * 2 
      size: 10, 10 

     Dot: 
      id: 2 
      pos: root.width/3, root.height/3 

     Dot: 
      id: 3 
      pos: (root.width/3) * 2, root.height/3 

截圖 screenshot

回答

1

Ellipse不是一個Widget,甚至是一個EventDispatcher。我感到驚訝的是,動態分類它可以工作(這看起來像一個bug,我們應該能夠檢測到這種情況並拒絕嘗試),但是實際發生的事情可能歸結爲Ellipse屬性,而不是實際上是Kivy屬性這將與kv語言正確工作。

+0

Thanks @inclement :)我現在創建了一個小部件,並在小部件的畫布上繪製了一個橢圓。我認爲這是正確的做法。有沒有一個很好的教程,詳細看這個? (Pong教程除外)。謝謝 :) – Nebelhom