2017-12-12 19 views
0

사용자 정의 버튼에서 버튼을 트리거하려는이 코드가 있습니다. 내 솔루션은 사용자 지정 단추를 눌렀을 때 모든 색을 변경합니다. 버튼을 변경하는 적절한 방법은 무엇입니까?kivy에서 사용자 정의 위젯의 설정을 변경하려면 어떻게해야합니까?

파이썬

class B_SettingScreen(Screen): 
    def change_color(self): 
     Factory.MainButton.background_normal = "z_MainButtonColorRed.jpg" 

kivy는

<[email protected]>: 
    font_size: 18 
    markup: True 
    size_hint: 0.25,0.06 
    color: 0,0,0,1 
    background_normal: "z_MainButtonColor.jpg" 

<B_SettingScreen>: 
    MainButton: 
     text: "[b][font=Arial]Change Color[/b][/font]" 
     pos_hint: {"center_x":0.25, "y":0.5} 
     on_release: root.change_color() 

답변

0

단지 응용 프로그램 클래스로 변경 (I 물었다 다른 문제 @ EL3PHANTEN 덕분에) 솔루션을 발견!

class Bobolo(App): 
    bg_but = StringProperty("z_MainButtonColor.jpg") 
    def build(self): 
     Window.clearcolor = 1,1,1,1 
     return A_ScreenManager() 
    def change_bg(self): 
     self.bg_but = "z_MainButtonColorRed.jpg" 

KV

<MainButton>: 
    id: MainButton 
    font_size: 18 
    markup: True 
    size_hint: 0.25,0.06 
    color: 0,0,0,1 
    background_normal: app.bg_but 


<B_SettingScreen>: 

    MainButton: 
     text: "[b][font=Arial]Change Color[/b][/font]" 
     pos_hint: {"center_x":0.25, "y":0.5} 
     on_release: app.change_bg()