2016-12-24 4 views
0

私はkivyから始めています。私はすでに解決できないロードブロッキングを打ちました。私が望むのは、kvファイルで動的なEllipseクラスを作成し、それをウィジェットのキャンバスに投影することだけです。ダイナミッククラスは効果がありません - Ellipse

私が見ているのは、それが楕円として認識されているが、属性のいずれも引き継がれていないことです(最も顕著なサイズです)。

私は下のコードと私が見るもののスクリーンショットを与えました。 1つの楕円の余分なサイズは、問題をより視覚的にするためにあなたの喜びのために作られたことに注意してください。それがなければ、私は3つの非常に大きな円を見る。

私はこれを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はウィジェットでも、EventDispatcherでもありません。私は動的にクラスを分類するのは驚くべきことです(これはバグのようですが、その状況を検出して試行することはできません)。実際に起こっていることは、おそらく実際にKivyプロパティではないEllipseプロパティになりますそれはkv言語で正しく動作します。

+0

ありがとう@inclement :)ウィジェットを作成し、ウィジェットのキャンバスに楕円を描きました。私はそれが正しいことだと思います。これについて詳細に調べる良いチュートリアルはありますか? (Pongチュートリアルを除く)。ありがとう:) – Nebelhom

関連する問題