Kivy language 错误:";无效的属性类型";在检查文本输入时
我试图检查用户的TextInput是否为空,但出现错误“属性类型无效”。我正在用kivy编程 我的kv代码: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:
<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