我有这个应用程序,用户可以在其中输入他/她的用户名。单击提交按钮后,将加载另一个页面,在该页面上应将先前输入的用户名显示在不可编辑的文本框中。我已附上完整的代码。如何使load_username textInput从用户页面获取用户名textInput?
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen,Screenmanager
Builder.load_string("""
<User>:
username:username
user_label:user_label
but_1:but_1
# cols: 1
Label:
id: user_label
font_size: 30
color: 0.6,0.6,1
text_size: self.width,None
halign: 'center'
text:'Enter username below'
TextInput:
id: username
font_size: 30
pos_hint:{"x":0.3,"y":0.25}
size_hint: 0.4,0.07
color: 0.6,None
halign: 'center'
Button:
id: but_1
font_size: 20
pos_hint:{"x":0.3,"y":0.15}
size_hint: 0.4,0.07
text: 'Get username'
on_press:
root.save_username()
root.manager.current = 'get_user'
""")
Builder.load_string("""
<GetUser>:
load_username:load_username
user_label:user_label
but_1:but_1
# cols: 1
Label:
id: user_label
font_size: 30
color: 0.6,None
halign: 'center'
text:'Received username from previous page'
TextInput:
id: load_username
font_size: 30
pos_hint:{"x":0.3,None
halign: 'center'
disabled:True
Button:
id: but_1
font_size: 20
pos_hint:{"x":0.3,0.07
text: 'Go back to username page'
on_press:
root.manager.current = 'user'
root.get_username()
""")
class User(Screen):
pass
def save_username(self):
print('saved: ',self.username.text)
class GetUser(Screen):
pass
def get_username(self):
self.load_username.text = "This should be previous username"
sm = Screenmanager()
sm.add_widget(User(name='user'))
sm.add_widget(GetUser(name='get_user'))
class username(App):
def build(self):
return sm
if __name__ == '__main__':
username().run()