私は最初の画面のテキスト入力から受け取る入力が2番目の画面の結果に影響するという単純な作業を行う必要があります。グローバル変数などのすべてのことを試しました。変数を格納して使用し、クラスを互いに入れても何も動作しないようです。何が最初の画面から入力を取り、私は2番目の画面で、後で使用できる変数にそれを格納するための最も簡単な方法..ですので、関係なく、私は何をすべきかテキスト入力データを格納するkivy python
def screenswitch(self):
sm.current= 'settings'
class LoginScreen(GridLayout):
def __init__(self, **kwargs):
super(LoginScreen, self).__init__(**kwargs)
self.cols = 2
self.spacing = [5,140]
self.test=Label(text='nothing')
self.add_widget(self.test)
self.add_widget(Label(text='Gender',color=(1, 0, 0, 1), font_size= 42))
self.gender = TextInput(text='why',multiline=False,font_size=32,write_tab=False)
self.add_widget(self.gender)
self.gender.bind(text=self.test.setter('text'))
self.btn1=(Button(text='Submit'))
self.add_widget(self.btn1)
self.btn1.bind(on_press=screenswitch)
class MenuScreen(Screen):
def __init__(self,**kwargs):
super(MenuScreen, self).__init__(**kwargs)
self.loginscreen = LoginScreen()
self.add_widget(self.loginscreen)
class TestScreen(BoxLayout):
def __init__(self, **kwargs):
super(TestScreen, self).__init__(**kwargs)
self.loginscreen = LoginScreen()
print self.loginscreen.gender.text
self.orientation = 'vertical'
self.add_widget(Label(text=self.loginscreen.gender.text))
self.add_widget(Label(text='password'))
class SettingsScreen(Screen):
def __init__(self,**kwargs):
super(SettingsScreen,self).__init__(**kwargs)
self.testscreen = TestScreen()
self.add_widget(self.testscreen)
sm = ScreenManager()
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(SettingsScreen(name='settings'))
class MyApp(App):
def build(self):
return sm
if __name__ == '__main__':
MyApp().run()
下記のコードの一部はありません2番目の画面では、gender.textが変更されていると確信している間、最初のラベルには常に「理由」と表示されます。 何が間違っていますか?