如何使用Builder.load从python向kv fille发送字符串
如何将kv文件中的self.username用作MDToolbar的标题。 下面是python代码如何使用Builder.load从python向kv fille发送字符串,python,kivy,kivy-language,kivymd,Python,Kivy,Kivy Language,Kivymd,如何将kv文件中的self.username用作MDToolbar的标题。 下面是python代码 class GipApp(MDApp): def build(self,username): self.theme_cls.primary_palette = 'Blue' screen = Builder.load_string(screen_helper) self.username = "unknown" self.usernameK
class GipApp(MDApp):
def build(self,username):
self.theme_cls.primary_palette = 'Blue'
screen = Builder.load_string(screen_helper)
self.username = "unknown"
self.usernameKV = "unknown"
return screen
def verify(self, username, password):
if username != "" and password != "":
for row in MySqlNames:
if row[0].strip() == username:
sql = "SELECT Password from ID191774_6itn1project7.Users where Username = %s "
mycursor.execute(sql, (username))
TestPassword = mycursor.fetchall()
for row3 in TestPassword:
if row3[0].strip() == password:
dialog = MDDialog(title="Login successful")
dialog.open()
self.username = username
GipApp.get_running_app().root.current = 'main'
我想在下一个kivy代码中使用self.username中的新值作为标题
<MainScreen>:
canvas.before:
Rectangle:
pos: self.pos
size: self.size
source: 'mountains.jpg'
name: 'main'
NavigationLayout:
ScreenManager:
Screen:
orientation: 'vertical'
MDToolbar:
title: ?????????
left_action_items:[["menu",lambda x: nav_drawer.toggle_nav_drawer()]]
elevation :12
pos_hint:{"center_x": .5, "center_y": .95}
:
在以下情况之前:
矩形:
pos:self.pos
大小:self.size
资料来源:“mountains.jpg”
名称:'main'
导航布局:
屏幕管理器:
屏幕:
方向:“垂直”
MDToolbar:
标题:?????????
左键动作项:[[“菜单”,lambda x:nav_抽屉。切换导航抽屉()
立面图:12
pos_提示:{“center_x”:.5,“center_y”:.95}
我希望有人能帮我解决这个问题。因为代码片段的格式很奇怪,我不确定,但我建议将username设置为字符串属性,如下所示
将kivy.properties导入为kypros
username=kypros.StringProperty()
我不会在“build”函数中声明它,而是在GipApp类中声明(我假设verify和build是这个类中的方法),然后在.kv文件中设置它时,执行以下操作:title:root.username
。我希望这会有所帮助,但我不是100%确定,因为代码片段的格式太糟糕了。干杯