Могу ли я автоматически нажать кнопку при нажатии клавиши «Return» в текстовом поле? - PullRequest
0 голосов
/ 15 октября 2019

В настоящее время я работаю над приложением с Kivy. На одном экране у меня есть TextInput и кнопка. Я могу ввести текст и перейти к следующему экрану, нажав кнопку. У меня вопрос: есть ли способ просто нажать клавишу «возврат» после ввода текста и автоматически нажать кнопку, не касаясь ее?

И небольшой вопрос сбоку: я поставил

focus: True

в TextInput, поэтому он сразу же фокусирует ввод текста, когда я выхожу на экран. Но это не сработает. После некоторых поисков в Google многие люди сказали, что это ошибка, хотя эти комментарии довольно старые (<1 года). Это все еще прослушивается или есть решение для этого? </p>

TextInput:
    focus: True
    pos_hint: {'x': .3, 'top': .8}
    size_hint: .4, .05
    id: search
    multiline:False

Button:
    text: 'back'
    font_size: 25
    size_hint: .3, .15
    pos_hint: {'x':.15, 'top': .4}
    on_release:
         app.root.current = 'main'
         root.manager.transition.direction = 'right'

1 Ответ

0 голосов
/ 15 октября 2019

Вы должны использовать это в своем TextInput:

on_text_validate:
     app.root.current = 'main'
     root.manager.transition.direction = 'right'

. Для автофокуса я использую подклассификацию.
В .py я создаю новый класс для TextInputи используйте это вместо ..

class MyTextInput(TextInput):
    """ TextInput with auto-focus
    """
    def __init__(self, **kwargs):
        super(MyTextInput, self).__init__(**kwargs)

        def set_focus(dt):
            self.focus = True
        Clock.schedule_once(set_focus, .1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...