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

我正在尝试构建一个 Kivy 应用程序,它有 2 个屏幕,这些屏幕用不同的文本一遍又一遍地重复使用。

因此,我从带有“First1”标签的 FirstScreen 转到带有“Second1”标签的 SecondScreen,然后返回 FirstScreen,但这次带有标签“First2”,然后是 SecondScreen 和“Second2”,然后等等等等。

此代码非常简单,但在没有指定更新按钮的情况下更新标签文本似乎存在问题。出于某种原因,我的 Python 代码设法更新了文本,但它没有在我的 .kv 文件中更新。因此,例如,我的打印语句会告诉我标签文本是“First2”,但 Kivy 为我显示“First1”。我在下面的屏幕截图中说明了这一点:

http://img1.mukewang.com/63e1f25600016db806200324.jpg

通过添加一个按钮来更新按下时的文本,所有内容都会更新、同步并正常工作,但我真的希望它在没有额外用户输入的情况下工作。有人知道我该怎么做吗?我已经左右搜索了文档和 stackoverflow 问题,但似乎无法找到我看似简单的问题的答案。



开满天机
浏览 85回答 1
1回答

胡说叔叔

问题是你的陈述:FirstScreen.update(FirstScreen())该语句创建FirstScreen并更新该实例的新实例。不幸的是,该实例不是您的 GUI 中显示的实例。您可以通过将上述语句替换为:    first_screen = self.manager.get_screen('first')     first_screen.update()此代码FirstScreen从获取实例ScreenManager并调用update()该实例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python