为了账号安全,请及时绑定邮箱和手机立即绑定

在 Kivy (Python) 中跨屏幕更新标签 - .kv 和 .py 文件与

在 Kivy (Python) 中跨屏幕更新标签 - .kv 和 .py 文件与

开满天机 2023-02-07 14:39:39
我正在尝试构建一个 Kivy 应用程序,它有 2 个屏幕,这些屏幕用不同的文本一遍又一遍地重复使用。因此,我从带有“First1”标签的 FirstScreen 转到带有“Second1”标签的 SecondScreen,然后返回 FirstScreen,但这次带有标签“First2”,然后是 SecondScreen 和“Second2”,然后等等等等。此代码非常简单,但在没有指定更新按钮的情况下更新标签文本似乎存在问题。出于某种原因,我的 Python 代码设法更新了文本,但它没有在我的 .kv 文件中更新。因此,例如,我的打印语句会告诉我标签文本是“First2”,但 Kivy 为我显示“First1”。我在下面的屏幕截图中说明了这一点:通过添加一个按钮来更新按下时的文本,所有内容都会更新、同步并正常工作,但我真的希望它在没有额外用户输入的情况下工作。有人知道我该怎么做吗?我已经左右搜索了文档和 stackoverflow 问题,但似乎无法找到我看似简单的问题的答案。
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

问题是你的陈述:

FirstScreen.update(FirstScreen())

该语句创建FirstScreen并更新该实例的新实例。不幸的是,该实例不是您的 GUI 中显示的实例。您可以通过将上述语句替换为:

    first_screen = self.manager.get_screen('first')
    first_screen.update()

此代码FirstScreen从获取实例ScreenManager并调用update()该实例。


查看完整回答
反对 回复 2023-02-07
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信