Kivy language 错误:";无效的属性类型";在检查文本输入时

Kivy language 错误:";无效的属性类型";在检查文本输入时,kivy-language,Kivy Language,我试图检查用户的TextInput是否为空,但出现错误“属性类型无效”。我正在用kivy编程 我的kv代码: <Label> font_size: self.height * .15 background_color: (59/255,191/255,174/255,1) canvas.before: Color: rgba: self.background_color Rectangle:

我试图检查用户的TextInput是否为空,但出现错误“属性类型无效”。我正在用kivy编程

我的kv代码:

<Label>
    font_size: self.height * .15
    background_color: (59/255,191/255,174/255,1)
    canvas.before:
        Color:
            rgba: self.background_color
        Rectangle:
            size: self.size
            pos: self.pos
    color: (0/255,0/255,0/255,1)

<TextInput>
    multiline: False
    input_filter: "int"
    font_size: self.height * .15
    background_normal: ""
    background_color: (192/255,251/255,243/255,1)
    color: (0/255,0/255,0/255,1)

<Button>
    font_size: self.height * .25
    color: (0/255,0/255,0/255,1)
    pos_hint: {'center_x': .5}
    size_hint: (1, .3)
    background_normal: ""
    background_color: (8/255, 122/255, 111/255, 1)


<MyLayout>

     BoxLayout:
        orientation: 'vertical'
        size: root.width, root.height
        padding: 1
        spacing: 1

    TextInput:
        id: calc_output
        text: "waiting for data..."
        halign: 'center'
        valign: 'center'
        font_size: self.height * .20
        color: (0/255,0/255,0/255,1)
        background_normal: ""
        background_color: (1,1,1,1)
        size_hint: (1, .3)

    GridLayout:
        cols: 1
        size: root.width, root.height

        GridLayout:
            cols: 2
            padding: 1
            spacing: 1

            Label:
                text: "Broj rođenih"

            TextInput:
                id: N
                
                                    
            Label:
                text: "Broj umrlih"

            TextInput:
                id: M
                

            Label:
                text: "Broj stanovnika prve godine"

            TextInput:
                id: bspg


            Label:
                text: "Broj stanovnika druge godine"

            TextInput:
                id: bsdg


    Button:
        text: "Definiraj tip općeg kretanja stanovništva"
        on_press: root.tipopceg()
但每次我都会犯同样的错误。由于我是编程界的新手,我想我犯了一个小错误,为什么程序不能识别每个用户文本输入和返回错误的“id”


有什么想法吗?

我不知道我是否也遗漏了一些东西,但kivy不是图书馆吗?我认为kivy的全部目的是以一种更实用的方式创建一个接口,并与您的逻辑语句分离,因此kivy语言仅用于创建接口。在这种情况下,我认为您应该使用python编写您的逻辑部分,然后调用您的小部件(如果您想使用它们的属性进行任何操作)

我建议您通过python获取用户输入,然后使用它定义小部件的属性:

self.userinput = TextInput(multiline=False)
现在,您可以将属性TextInput.text作为用户输入的实际文本。您可以使用以下选项检查它是否为空:

if len(self.userinput.text) == 0:
    #do something
        

你用来检查TextInput是否为空的代码位在哪里?没有放在那里,我现在将解决我的问题。你以前能运行代码并看到界面吗?你是怎么做到的?
self.userinput = TextInput(multiline=False)
if len(self.userinput.text) == 0:
    #do something