Kivy:可以用kv语言覆盖TextInput的insert_text()函数吗?

时间:2015-08-13 03:38:27

标签: python kivy

有没有办法只使用kv语言覆盖insert_text()的{​​{1}}函数?我想将文本限制为仅数值。我知道有一种方法可以通过python代码来实现,例如我发现的以下示例:

TextInput

但是有没有办法对kv文件中的TextInput小部件做同样的事情:

class NumericInput(TextInput):

def insert_text(self, substring, from_undo=False):
    if not from_undo:
        try:
            int(substring)
        except ValueError:
            return
    super(NumericInput, self).insert_text(substring, from_undo)

如果没有,我如何整合python代码以限制我的 <Temperature>: name: "Temperature" BoxLayout: orientation: 'vertical' Label: text: "Farenheit" TextInput: id: user_input font_size: 50 size_hint_y: None insert_text: 小部件的输入文本?

1 个答案:

答案 0 :(得分:2)

您无法从kv语言覆盖该方法。如果你想这样做,只需在python定义中覆盖Temperature小部件的方法。

TextInput还有input_filter属性,可以设置为'int''float'以仅接受数字。你可以用kv。

来设置它