2014-11-13 9 views
2

나는 Kivy로 앱을 만드는 법을 배우고 있었고 파이썬과 kv 언어를 사용할 때 App이 다르게 보입니다.위젯을 초기화하기 위해 kv 파일과 파이썬 클래스를 사용하는 차이점

내가 뭘하려는 건지 배경을 빨간색으로하는 것입니다. 파이썬으로 할 때 왼쪽 하단 모서리에 작은 빨간 상자가 생깁니다 (아마도 기본 100px 키비 위젯 크기).

다음
from kivy.app import App 
from kivy.uix.widget import Widget 
from kivy.graphics import * 

class MyWidget(Widget): 
    def __init__(self, **kwargs): 
     super(MyWidget, self).__init__(**kwargs) 
     with self.canvas: 
      Color(1,0,0,1) 
      Rectangle(size = self.size, pos = self.pos) 


class MyWidgetApp(App): 
    def build(self): 
     x = MyWidget() 
     return x 
     pass 

if __name__ == "__main__": 
    MyWidgetApp().run() 

가 내 KV 파일

<[email protected]>: 
    canvas: 
     Color: 
      rgba: 1, 0, 0, 1.0 
     Rectangle: 
      size: self.size 
      pos: self.pos 

왜 이런 일이 않습니다 - 나는 KV 파일로 작업을 수행 할 때 , 나는 빨간색으로 전체 배경을 여기에

내 파이썬 코드 얻을 ? 그리고 어떻게 파이썬에서 배경색을 설정할 수 있습니까? 리눅스 컴퓨터에서 Python 2.7을 사용하고 있습니다.

답변

2

문제는 kv가 자동으로 빨간색 사각형 위치와 크기를 업데이트하는 반면 python은 바인딩 할 수 없다는 것입니다. 자체 바인딩을 만들려면 bind 메서드를 사용해야합니다. 나는 here에 대한 블로그 게시물을 가지고 있습니다 - 우연히도, 그것은 정확하게 당신의 예를 다루고 있습니다.

+0

감사합니다. 완벽하게 작동합니다. – Mortz

관련 문제