首先,这还不清楚,但您需要将代码分离为py文件和kv文件。看来你已经做过了。你的kv文件也需要全部小写
然后在py文件中为kivy小部件添加一个类。在这种情况下:from kivy.uix.boxlayout import BoxLayout
class AnswerInput(BoxLayout):
pass
那么在你的kv文件中:
^{pr2}$
来自py的AnswerInput会查看加载的kv文件,以查看是否存在与自身同名的根小部件。在
(RootWidget表示封装在<;>中的一组kv逻辑的顶部小部件)
但是你必须首先知道如何加载一个kv文件,有两种方法可以做到这一点。如果你只使用一个kv文件,你可以用你的kv文件命名你的应用程序。在
如果你的kv文件是textinputtest.kv
你在py中的app类应该是TextInputTest(App):
or
TextInputTestApp(App):
您不需要这样做,您还可以使用builder模块来加载文件本身(事实上,如果您有多个kv文件,则需要这样做)。在
为此,请在py文件中执行以下操作:from kivy.lang.builder import Builder
Builder.load_file('textinputtest.kv')
您还返回了textinput类的一个对象,您要做的是返回一个自定义textinput类的对象。在
Py文件如下所示:from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class AnswerInput(BoxLayout):
pass
class TextInputTest(App): # If your kv file is called textinputtest.kv
def build(self):
return AnswerInput()
if __name__ == '__main__':
TextInputTest().run()
或者你可以给你的应用程序命名任何你想要的名字,然后使用builder将相关的kv文件直接加载到你的应用程序中。在