kivy文件返回空白屏幕



这里是kivy文件代码:

#:kivy 
<MyGridLayout>:
GridLayout:
cols:1
GridLayout:
cols:2
Label:
text: "Name"
TextInput:
multiline:False

Label:
text: "Time"
TextInput:
multiline:False
Label:
text: "Mood"
TextInput:
multiline:False
Button:
text:"Submit"

这是主文件代码:

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.gridlayout import GridLayout
# from numpy import full

class MyGridLayout(Widget):

def button_pressed(self, instance):
name = self.name.text
time = self.time.text
mood = self.mood.text
self.add_widget(Label(text=f'hey, {name}nAccording to your {mood} mood at {time}, we have some suggestions in songs: '))
self.name.text=""
self.time.text=""
self.mood.text=""
class QuizMasters(App):
def build(self):
return MyGridLayout()
if __name__=='__main__':
QuizMasters().run()

每当运行面临同样问题的文件时,我都会将主文件保存为QuizMasters.py,将kivy文件保存为QuizMasters.kv,有人能帮忙吗。。。

您尚未在.kv文件中指定kivy版本。试着把它设置成

#:kivy 2.0.0 # Or replace with your installed version.
.
.
.

当我运行您的代码时,在.kv文件中出现了一个错误。一旦我删除了#:kivy,它对我来说就成功了

如果这不起作用,MyGridLayoutWidget继承,这使它成为必须添加的Widget。试着切换到屏幕,告诉我这是否有效。

另外,不要忘记,.kv文件的名称必须与QuizMasters主类的名称相同。如果您的主类包含app,则不应包含它。在您的情况下,.kv文件应命名为quizmasters.kvALL LOWERCASE

最新更新