我正在使用 Windows 10,Python 3.7.9 我的代碼:在 Main.py 中:from kivy.app import Appfrom kivy.uix.widget import Widgetclass MyGrid(Widget): passclass Main(Widget): def build(self): return Main()if __name__ == "__main__": Main().run()在main.kv中:<Main> GridLayout: cols:1 GidLayout: cols:2 Label: text: "Name: " TextInput: multiline:False Label: texxt: "Email: " TextInput: multiline:False Button: text:"Submit"錯誤(1):在 .py 文件中,“Main().run()”中的“Main”帶有下劃線:Instance of 'Main' has no 'run' member錯誤(2):在 .kv 文件中,'' 帶有下劃線:Kivy files require #:Kivy我不知道如何修復,非常感謝任何幫助
2 回答

LEATH
TA貢獻1936條經驗 獲得超7個贊
我看到兩個錯誤,一個在 kv 代碼中,第二個在 python 代碼中。
在 kv 代碼中將 更改<Main>為<MyGrid>。MyGrid 類是根小部件,而不是 Main 類。Main類只負責構建widget樹。
在 python 代碼中,更改 Main 類中 build 方法的返回,以便它返回 MyGrid 實例。并且Main應該繼承自App類,而不是繼承自Widget類。
class Main(App):
def build(self):
return MyGrid()

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
根據文檔,一個kv
文件:
kv 文件的語法 Kivy 語言文件必須以 .kv 作為文件擴展名。
文件的內容應始終以 Kivy 標頭開頭,其中 version 必須替換為您正在使用的 Kivy 語言版本?,F在,使用 1.0:
#:kivy `1.0` # content here
然后,在你的py
文件中。申請必須App
延期Widget
。此外,該build()
方法必須返回 a Widget
,而不是 的實例App
。而且,如果您的App
名稱為Main
,那么您應該為App
.
文件中的規則kv
描述了如何構建小部件,并且不能應用于構建App
. 它們可以描述 的根小部件的構建App
,但不能描述其App
本身。
添加回答
舉報
0/150
提交
取消