Kivy:如何正确操作在KV lang中定义的python中的小部件

时间:2015-08-16 16:06:02

标签: python python-2.7 kivy

我有以下用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)

1 个答案:

答案 0 :(得分:0)

检查它可以转换的值。在您的示例中,您实际上并未设置文本,因此它可能正在执行float(''),这会产生您看到的错误,因为''没有描述浮动。在这种情况下,您希望尝试进行转换,但如果失败则返回合适的内容或根本不执行任何操作。