2016-06-02 4 views
1

내 버튼에 대한 텍스처가 textures\button (코드 파일과 관련이 있음) 폴더로 묶여 있습니다. 필자는 코드 전체에서이 경로를 kv 및 Python 코드의 여러 위치에서 지정했습니다. 파이썬 코드는 텍스처를 잘 인식하는 것 같았지만 kv는 텍스처를 찾지 못했습니다. 그게 뭐야? Kv 언어가 디렉토리의 파일을 보지 못합니다.

from kivy.app import App 
from kivy.uix.button import Button 
from kivy.lang import Builder 

Builder.load_string(''' 
<MyButton>: 
    background_normal: "textures\\button\\normal.png" 
''') 

class MyButton(Button): 
    pass 

class TestApp(App): 
    def build(self): 
     bt = MyButton() 
     return bt 

TestApp().run() 

나에게 빈 질감을했다 :
다음은 코드 샘플입니다. 그러나 kv 부품을 제거하고 그런 버튼을 만들었습니다.

bt = MyButton(background_normal = "textures\\button\\normal.png") 

질감이 나타납니다. 내가

+0

지금 가지고있는 경로 대신 kv에서 "textures/button/normal.png"를 사용해 보셨습니까? (즉, 슬래시를 변경 했습니까? – elethan

답변

1

당신은 /, 즉 사용하여 경로에 \\를 교체해야 Kivy v1.9.2-dev0을 사용하고
: 내 경험에

Builder.load_string(''' 
<MyButton>: 
    background_normal: "textures/button/normal.png" 
''') 

는 KV는 경로는 위의 형식으로 할 것으로 예상하고, 이것이 당신에게 효과가 있다면, 이것은 kivy의 플랫폼 독립적 인 기대라고 가정 할 것입니다.

+0

나는 Windows를 사용하고 경로는 백 슬래시로 구분되어 있으므로 Kivy에 적용한 것과 같은 것으로 가정합니다. – Leva7

+0

@ Leva7 정보를 제공해 주셔서 감사합니다! 아직 Windows에서 개발을하지 않았으므로이 규칙을 잘 모르겠습니다. – elethan

+1

Kivy는 크로스 플랫폼이므로 사람들이 플랫폼 별 코드를 작성하지 않도록 노력합니다. Kivy가 실행하는 다른 모든 플랫폼은 경로 구분자로'/'를 사용하므로 이것이 표준입니다. –

관련 문제