有没有办法只使用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:
小部件的输入文本?
答案 0 :(得分:2)
您无法从kv语言覆盖该方法。如果你想这样做,只需在python定义中覆盖Temperature
小部件的方法。
TextInput还有input_filter
属性,可以设置为'int'
或'float'
以仅接受数字。你可以用kv。