我正在嘗試構建一個 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()
該實例。
添加回答
舉報
0/150
提交
取消