簡體   English   中英

App.root 必須是 Widget 的_實例_。 App.root 中的實例無效

[英]App.root must be an _instance_ of Widget. Invalid instance in App.root

我不是 python 的新手,但我不是很了解它嗎,但我是 Kivy 的新手。這只是我做的一件小事,只是為了從某個地方開始。 我在 Visual Studio 代碼 (VSC) 中工作。 Python 版本 3.10。 這個想法是:有 5 個按鈕,每個按鈕都有一個名稱,當你點擊一個按鈕時,圖像(meme)應該出現。 這是完整的代碼、終端、調試器以及命令提示符中的內容:

代碼代碼

終端終端

調試器調試器

命令提示符命令提示符

這是 python 本身和文件夾“Projects” C:\Users\Кирилл\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.10在此處輸入圖像描述

這是帶有虛擬環境 (App_EPQ) 的文件夾和帶有代碼 (App_code) 的文件夾C:\Users\Кирилл\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.10\Projects enter image description here

提前致謝

試圖重寫代碼,但沒有奏效。 試圖找到有類似問題的人也沒有運氣。 不知道下一步該做什么以及如何解決它,所以這是我最后的希望。

您的 class 必須繼承布局和 App:

    class HBoxLayoutExample(BoxLayout, App)

另一種方法是創建一個 class 來構建應用程序並返回布局:

    class HBoxLayoutExample(BoxLayout)
    **your code**

    class HBoxApp(App):
        def build(self):
            return HBoxLayoutExample
    if __name__ == '__main__':
        HBoxApp().run()

如此處所示https://kivy.org/doc/stable/guide/lang.html#designing-with-the-kivy-language

替換你的行:

return layout, button

和:

return layout

就這樣。 build()方法必須返回一個小部件,在您的情況下是 BoxLayout 實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM