这里是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
,它对我来说就成功了
如果这不起作用,MyGridLayout
从Widget
继承,这使它成为必须添加的Widget
。试着切换到屏幕,告诉我这是否有效。
另外,不要忘记,.kv文件的名称必须与QuizMasters
主类的名称相同。如果您的主类包含app
,则不应包含它。在您的情况下,.kv文件应命名为quizmasters.kv
ALL LOWERCASE