【发布时间】:2021-04-08 07:24:18
【问题描述】:
我希望文本输入中的变量在启动时传递给另一个类。所以我有一个类是登录屏幕(使用 python 和 kivy 完成),当用户输入它的用户名时,我希望将其传递给另一个类(在不同的 .py 文件中),以便新启动的类能够用它的名字问候用户。
我该怎么做?
login_screen.py:
from kivy.app import App
import user_specific_greeting_screen
class LoginUser():
def__init__(self):
pass
def login(self):
username_to_pass_on = self.user.text
self.canvas.clear()
user_specific_greeting_screen.ReturnApp2().run() # <---- Want to pass var:
# username_to_pass_on
class ReturnApp1(App):
def build(self):
return LoginUser()
if __name__ == '__main__':
ReturnApp1().run()
returnapp1.kv:
<LoginUser>:
user: user_kv
BoxLayout:
orientation: 'vertical'
rows: 2
BoxLayout:
TextInput:
id: user_kv
hint_text: 'input username'
BoxLayout:
Button:
text: 'Login'
on_press: root.login()
user_specific_greeting_screen.py
from kivy.app import App
class UserGreet():
def __init__(self):
self.label.text = 'Hello ' + username_i_want_passed # <--- Want username inserted
# here from app_1.py
class ReturnApp2(App):
def build(self):
return UserGreet()
if __name__ == '__main__':
ReturnApp2().run()
returnapp2.kv:
<UserGreet>:
label: label_kv
Label:
id: label_kv
我希望代码能解释我想要做什么。 另外,我是否在整体上“正确”地考虑这个问题?我的意思是一个 .py 文件用于登录屏幕,另一个用于用户特定的问候屏幕等?目前正在学习kivy和python以及编程。
提前致谢!
【问题讨论】:
-
您确定需要启动另一个应用程序吗?您不能只显示另一个显示“用户特定问候”的
Screen吗?看看ScreenManager。 -
感觉像一个旋钮,但这可能正是我需要研究的。非常感谢您抽出宝贵时间!