为文本输入设置宽度属性
我按照展示应用的方式创建了一个小部件。不过,我在api的文档中没有找到任何可以限制输入框宽度的内容。我该怎么设置宽度呢?
CTextInput:
size_hint_y: None
height: '32dp'
multiline: False
hint_text: 'SNMP Community String(s)'
1 个回答
8
这里提到的 width
我猜是指文本的长度,因为设置一个小部件的 width
和设置它的 height
一样简单。
你提供的文档里有一个关于文本过滤的示例,这个示例可以很容易地修改来限制文本的长度:
class MyTextInput(TextInput):
def insert_text(self, substring, from_undo=False):
# limit to 5 chars
substring = substring[:5 - len(self.text)]
return super(MyTextInput, self).insert_text(substring, from_undo=from_undo)
如果你正在使用 Kivy 的开发版本(1.8.1-dev,来自 git),那就更简单了,可以直接通过 kv 来实现。你可以使用一个可调用的 input_filter
来限制文本的长度。这里有一个简单的示例:
TextInput:
# limit to 5 chars
input_filter: lambda text, from_undo: text[:5 - len(self.text)]