Python 如何使用Kivy显示文本输入框?
我目前正在为一个学校项目在Kivy中编写一个应用程序,我不得不在Kivy的最深处投入。我已经为文本输入编写了kv代码,您可以在下面看到:Python 如何使用Kivy显示文本输入框?,python,kivy,kivy-language,Python,Kivy,Kivy Language,我目前正在为一个学校项目在Kivy中编写一个应用程序,我不得不在Kivy的最深处投入。我已经为文本输入编写了kv代码,您可以在下面看到: AnswerInput: <AnswerInput@BoxLayout>: orientation: "vertical" BoxLayout: height: "40dp" size_hint_y: None TextInput: size_hint_x:
AnswerInput:
<AnswerInput@BoxLayout>:
orientation: "vertical"
BoxLayout:
height: "40dp"
size_hint_y: None
TextInput:
size_hint_x: 20
Button:
text: "Check Answer"
size_hint_x: 25
我几乎可以肯定,我在这里遗漏了一些东西,可能是一些非常简单的东西,但我对Kivy非常熟悉。如果有人能让我走上正轨,我将不胜感激。首先,这并不清楚,但您需要将代码分为py文件和kv文件。看来你已经这么做了。您的kv文件也需要全部小写 在py文件中,为kivy小部件添加一个类。在这种情况下:
from kivy.uix.boxlayout import BoxLayout
class AnswerInput(BoxLayout):
pass
然后在您的kv文件中:
<AnswerInput>:
orientation: "vertical"
BoxLayout:
height: "40dp"
size_hint_y: None
TextInput:
size_hint_x: 20
Button:
text: "Check Answer"
size_hint_x: 25
py中的应用程序类将为
TextInputTest(App):
or
TextInputTestApp(App):
您不需要这样做,还可以使用生成器模块加载文件本身,事实上,如果您有多个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文件直接加载到你的应用中。如果name\uuu==“\ uuuu main”不应该在你的类中,请查看描述它的kv语言文档
from kivy.lang.builder import Builder
Builder.load_file('textinputtest.kv')
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()