2017-10-14 38 views
0

我想更改KV文件中按钮的背景颜色,但它不起作用。该按钮已定义并从Python文件中循环在Python中定义的KV文件上访问按钮

def gotoPost(i, instance): 
    print("HAHAHAH") 
    Manager.current = 'ScreenTwo' 

class ScreenOne(Screen): 
    box = ObjectProperty(None) 

    def on_box(self, *args): 
     for i in range(5): 
      btn = Button(text=str(i)) 
      btn.bind(on_press=partial(gotoPost,i)) 
      self.box.add_widget(btn) 

Factory.register('ScreenOne', cls=ScreenOne) 

class ScreenTwo(Screen): 
    pass 

class Manager(ScreenManager): 

    screen_one = ObjectProperty(None) 
    screen_two = ObjectProperty(None) 

class MainApp(App): 
    def build(self): 
     return Manager() 
if __name__=="__main__": 
    MainApp().run() 

如何访问KV文件中的按钮?

回答

0
class ScreenOne(Screen): 
    box = ObjectProperty(None) 
    color = [1.0,1.0,1.0,1.0] 
    back_color = [0.0,0.0,0.0,1.0] 
    def on_box(self, *args): 
     for i in range(5): 
      btn = Button(text=str(i), color= self.color, background_color= self.back_color) 
      btn.bind(on_press=partial(gotoPost,i)) 
      self.box.add_widget(btn) 

您可以指定一个按钮,在按下时根据需要更改颜色。例如:self.color或self.back_color =(7,0,1,1)...我认为这是红色

+0

问题是“我如何访问KV文件中的按钮?”而不是在Python脚本中。 – ikolim