TextInput Kivy 的自动“聚焦”

Woo*_*ide 7 python kivy

我有一个看起来像这样的文本输入小部件:

<ReaderWidget>:
    Label:
        text: 'Please scan EBT card'
        font_size: root.height/8
        size: self.texture_size
        bold: True
        color: 0, 0.70, 0.93, 1
    TextInput:
        focus: True
        password: True
        multiline: False
        cursor: 0, 0
Run Code Online (Sandbox Code Playgroud)

根据用户按下另一个小部件中的按钮,小部件会动态添加到布局中。目前,用户必须在输入文本之前将鼠标/手指指向文本框,我希望光标在文本框中准备好接收文本,而用户不必通过鼠标按下来指示。有没有办法做到这一点?

好像focus : True应该这样做。但似乎没有。

int*_*ero 5

我知道这很旧,但是当我尝试做一些非常相似的事情时我发现了这个问题。我添加 TextInput(并设置它的焦点)的代码位于按钮的 on_press 处理程序中。按下会导致 TextInput 被添加到布局并设置焦点,但是当按钮被释放时它会失去焦点。将我的代码移动到 on_release 解决了这个问题。


Pet*_*ter 2

这在 kivy 1.9.0 中对我有用:

def show_keyboard(event):
    text_input.focus = True
Clock.schedule_once(show_keyboard)
Run Code Online (Sandbox Code Playgroud)

如果直接设置text_input.focus似乎不起作用。也许这是 kivy 中的一个错误?

  • 对于我的情况,我需要 0.2 秒的延迟才能让它工作(即 Clock.schedule_once(show_keyboard, 0.2))。共享,这样其他人就不需要像我一样被困几个小时。 (3认同)