2017-09-01 21 views
0

ボタンがあるクラス(詳細オプションを参照)、リリース時には(自分のクラスを持つ)ポップアップが開きます。そこにはtexet inputとaがあります。ボタンをクリックして、最初のクラスに戻す(書き込みボタンを押す)必要があるボタンを入力してください(これは、texet入力値を出力します)。クラス内のテキスト入力を別のクラスに出力する

*********** pythonファイル** *********

from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.boxlayout import BoxLayout 

class btn_(BoxLayout): 
    pass 


class Var(): 
    def PP_(self): 
     xx = self.textinput1.text 
     print (xx) 

class Editor(App): 
    zozo = Var() 
    def build(self): 
     return btn_() 

if __name__ == '__main__': 
    Editor().run() 

****のKVファイル*********

#:import Factory kivy.factory.Factory 
<btn_>: 
    Button: 
     text: "Open PopUp" 
     on_release: Factory.Popup().open() 
<Popup>: 
    textinput1: textinput1 
    BoxLayout: 
     TextInput: 
      id: textinput1 
      hint_text: "Write something" 
     Button: 
      text: "Write" 
      on_release: app.zozo.PP_() 

答えて

0

は、2番目のクラスからのTextInputを通過させるための解決策は、最初のクラスのVaRは()、btn_()は次の通りである:

main.py

from kivy.app import App 
from kivy.uix.boxlayout import BoxLayout 


class Var(): 
    pass 


class btn_(BoxLayout): 

    def PP_(self, txt): 
     print(txt) 


class Editor(App): 

    def build(self): 
     return btn_() 

if __name__ == '__main__': 
    Editor().run() 

editor.kv

#:import Factory kivy.factory.Factory 

<Popup>: 
    BoxLayout: 
     TextInput: 
      id: textinput1 
      hint_text: "Write something" 
     Button: 
      text: "Write" 
      on_release: Factory.btn_().PP_(textinput1.text) 

<btn_>: 
    Button: 
     text: "Open PopUp" 
     on_release: Factory.Popup().open() 

出力:

enter image description here

関連する問題