我有以下用KV朗写的:
TextInput:
id: user_input_temp
font_size: 50
size_hint_y: None
input_filter: 'float'
multiline: False
Label:
text: "Celsius"
Label:
id: celsius
text: root.temp_conv()
我尝试在python代码中使用user_input_temp
:
class Temperature(Screen,BoxLayout):
def temp_conv(self):
number = self.ids.user_input_temp.text
input = float(number)
celsius = (input - 32)*(5/9)
self.ids.celsius.text = str(celsius)
但我收到错误 - ValueError: could not convert string to float:
如何正确转换小部件的.text
? (最好使用小部件ID)
答案 0 :(得分:0)
检查它可以转换的值。在您的示例中,您实际上并未设置文本,因此它可能正在执行float('')
,这会产生您看到的错误,因为''
没有描述浮动。在这种情况下,您希望尝试进行转换,但如果失败则返回合适的内容或根本不执行任何操作。