2016-03-27 18 views
0

私は画面内でいくつかの機能を実行できるようにしようとしていますが、その機能は他の画面で機能します。だから、私はscreenmanagerとアプリを持って、このアプリは2つの画面があり、各画面は2つのボタンがあります。ボタンは他の画面で何かを行い、他のボタンは画面を変更します。しかし、他の画面では何も実行できません。数値を作成したいと思います。この値を任意の画面で表示したり操作したりできます。私の実際のコードは以下のとおりです。私は他の人に画面を、この値を変更することができます方法がわからない、この2つのラベル kivyを使った別の画面での操作

class SegundoScreen(Screen): 
    def __init__(self, **kwargs): 
     self.name = 'dois' 
     super(Screen,self).__init__(**kwargs) 

    def fc1(self): 
     self.ids.lb6.value += 5 
     #self.ids.lb5.value += 5 

とで同じ値を表示する方法

class PrimeiroScreen(Screen): 
    def __init__(self, **kwargs): 
     self.name = 'um' 
     super(Screen,self).__init__(**kwargs) 

    def fc1(self): 
     value = self.manager.get_screen('dois') 
     self.ids.lb5.value += 5 
     #self.ids.lb6.value += 5 

の.py。 KV

<PrimeiroScreen>: 
    GridLayout: 
     cols: 1  
     size_hint: (.2, .4) 
     pos_hint:{'x': .35, 'y': .7} 
     #padding: 30, 0 
     spacing: 0, 10 
     MyLabel: 
      text:"Valor {}".format(self.value) 
      font_size: '20dp' 
      text_size: self.width, self.height 
      id: lb5 
     Button: 
      text: "Voltar!" 
      font_size: '20dp' 
      text_size: self.width - 20, None 
      size_hint: (.1,.1) 
      pos_hint:{'x':.45, 'y':.05} 
      on_release: root.manager.current = 'dois' 
     Button: 
      text: "Somar!" 
      font_size: '20dp' 
      text_size: self.width - 20, None 
      size_hint: (.1,.1) 
      pos_hint:{'x':.45, 'y':.3} 
      on_press: root.fc1() 

<SegundoScreen>: 
    GridLayout: 
     cols: 1 
     size_hint: (.2, .4) 
     pos_hint:{'x': .35, 'y': .7} 
     #padding: 30, 0 
     spacing: 0, 10 
     MyLabel: 
      text:"Valor{}".format(self.value) 
      font_size: '20dp' 
      text_size: self.width, self.height 
      id: lb6 
     Button: 
      text: "Voltar!" 
      font_size: '20dp' 
      text_size: self.width - 20, None 
      size_hint: (.1,.1) 
      pos_hint:{'x':.45, 'y':.05} 
      on_release: root.manager.current = 'um' 
     Button: 
      text: "Somar!" 
      font_size: '20dp' 
      text_size: self.width - 20, None 
      size_hint: (.1,.1) 
      pos_hint:{'x':.45, 'y':.3} 
      on_press: root.fc1() 

答えて

1

あなたはScreenManager's get_screen方法で特定Screenを得ることができます。そこから、idのkvで定義されたウィジェットにアクセスできます:

screen2 = self.manager.get_screen('dois') 
screen2.ids.lb6.text = 'New text' 
+0

あなたは素晴らしいです。あなたが見ることができるように、私は英語では良くないです、私はあなたが私を理解できることを願っています。私はあなたの助けに非常に感謝しています。私は急いで、私はstackoverflowのポストウェイを知りません。私はすぐに寝るつもりですが、私はこのコードを実行することができます。本当に、私は感謝の気持ちの良い男です、そして、私は進化することができますように願っています。ありがとう! – victorcd