设置文本输入的宽度属性

KDE*_*DEx 1 python textinput kivy

我以与展示应用程序相同的方式创建了一个小部件。但是我在 api文档中没有看到任何限制输入字段宽度的内容。我该如何设置宽度?

CTextInput:
    size_hint_y: None
    height: '32dp'
    multiline: False
    hint_text: 'SNMP Community String(s)'
Run Code Online (Sandbox Code Playgroud)

Rya*_*n P 8

我假设width您指的是文本长度,因为设置width小部件的 与设置 is 一样简单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)
Run Code Online (Sandbox Code Playgroud)


如果您碰巧正在运行 Kivy 的开发版本(1.8.1-dev,来自 git),这甚至更容易,并且可以从 kv 完成。您可以使用 callable 限制文本的长度input_filter。这是一个简单的例子:

TextInput:
    # limit to 5 chars
    input_filter: lambda text, from_undo: text[:5 - len(self.text)]
Run Code Online (Sandbox Code Playgroud)