我最近开始学习Kivy,并且在处理在TextInput框中输入的文本/数字时遇到了奇怪的错误。
The Kivy Code看起来像这样:
BoxLayout:
orientation: 'vertical'
BoxLayout:
orientation: 'horizontal'
Label:
text: 'No. of buttons:'
markup: True
color: 0, 0, 0, 1
CustomTextInput:
id: textinput_num
max_characters: 2
multiline: False
input_filter: 'int'
相关的Python代码如下:
class DropDownScreen(Screen):
def add_dd_values(self):
dd_input = App.get_running_app().root.get_screen('dd_screen').ids.textinput_num.text
print("TextInputBox: ", dd_input, "\n")
print("Length: ",len(dd_input))
print(int(dd_input)+1)
我参考了文本输入框的值,如下所示:
dd_input = App.get_running_app().root.get_screen('dd_screen').ids.textinput_num.text
这里,textinput_num是相关文本输入框的ID。我可以打印文本输入框的值,还可以检查字符串的长度。注意:我已使用input_filter:'int'语句在文本输入框中仅允许数字。我知道dd_input将接收一个字符串值。因此,我尝试将其转换为整数值并执行数字运算。
但是,出现以下错误:ValueError:int()以10为底的无效文字:
我在Google中查询过,看来这与正在处理的数据类型有关。
您能帮我了解这里出了什么问题吗?从文本输入框中访问和读取数值的正确方法是什么?
最奇怪的部分是,对于同一段代码,此错误本质上是间歇性的。有时它返回错误,有时却不。
您提到错误是“间歇性的”。我可能是错的,但我认为这是正在发生的事情。当textinput字段为空白/空时,您将收到异常/错误。本质上,这意味着dd_input的值为null或它指向一个空字符串,该字符串不能转换为整数。因此,错误。
添加条件以处理异常并查看会发生什么:
if dd_input == '':
dd_input="0"