2016-12-24 3 views
0

나는 kivy로 시작하고 있으며 이미 해결할 수없는로드 블록을 쳤습니다. 내가 원하는 것은 kv 파일에서 동적 Ellipse 클래스를 만든 다음 위젯의 캔버스에 그것을 투사하는 것입니다.다이나믹 클래스는 아무 효과가 없습니다 - 타원

내가보기에는 그것이 타원으로 인식되지만 어떤 속성도 차지하지 않습니다 (특히 주목할만한 크기).

아래 코드와 스크린 샷을 보았습니다. 하나의 타원에 여분의 크기가 표시되어 문제가 더 시각적으로 보이게됩니다. 그것 없이는 세 개의 커다란 동그라미가 보입니다.

우분투 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

타원은 위젯 또는 EventDispatcher가 아닙니다. 저는 동적으로 클래스를 분류하는 것이 (버그 인 것 같아서, 우리가 그 상황을 감지하고 시도하기를 거부 할 수 있어야합니다.) 실제로 작동하는지는 놀랍습니다.하지만 실제로 일어나고있는 것은 아마도 Kivy 속성이 아닌 Ellipse 속성에있을 것입니다. 그것은 kv 언어로 올바르게 작동합니다.

+0

감사합니다. @inclement :) 이제 위젯을 만들고 위젯의 캔버스에 타원을 그었습니다. 그것이 올바른 방법이라고 생각합니다. 이 부분을 자세하게 보여주는 훌륭한 튜토리얼이 있습니까? (퐁 튜토리얼 제외). 감사 :) – Nebelhom