QML TextInput: как определить, что пользователь завершил ввод текста в текстовом поле

Я новичок в Qt и QML. Я использую QtQuick 2.4. У меня есть элемент TextInput с сигналом, определенным в файле qml, как показано ниже:

import QtQuick 2.4

TextInput {
  text: "Text"
  cursorVisible: true

  signal qmlSignal(string msg)
}

У меня также есть слот, привязанный к qmlSignal. Я хочу активировать сигнал, когда пользователь завершает ввод в поле TextInput или закрывает мою страницу qml, чтобы перейти на другую страницу в приложении.

Каков правильный способ достижения желаемой функциональности? Есть ли что-то вроде onFocusChanged false, которое я могу обнаружить и запустить сигнал qml?

Я попытался выполнить поиск, но не смог получить образец того, как это сделать в qml.


person TheWaterProgrammer    schedule 27.10.2016    source источник


Ответы (1)


Как насчет сигнала editingFinished()?

Этот сигнал испускается, когда нажата клавиша «Ввод» или «Ввод», или ввод текста теряет фокус.

person dtech    schedule 27.10.2016
comment
Я делаю это для телефонов Android и iOS с сенсорным экраном. Там тоже должно работать. Правильно ? - person TheWaterProgrammer; 27.10.2016
comment
@NelsonP - Так и должно быть. - person dtech; 27.10.2016
comment
как мне изменить блок TextInput qml для отправки текста, когда сигнализируется editingFinished? Можете ли вы предоставить образец. я новичок в этом - person TheWaterProgrammer; 27.10.2016
comment
не работает. выдает ошибку invalid property и приложение вылетает. Я так ставлю TextInput { text: "Text" cursorVisible: true signal qmlSignal(string msg) onEditingFinished: qmlSignal(text) } - person TheWaterProgrammer; 27.10.2016
comment
может быть, мне не хватает некоторых import statement, чтобы это сработало? - person TheWaterProgrammer; 27.10.2016
comment
Просто введите это под объявлением вашего сигнала - person dtech; 27.10.2016
comment
если я сделаю это, это сработает: onTextChanged: { console.log(text) } Не найдите там onEditingFinished. это может быть что-то с импортом qtquick - person TheWaterProgrammer; 27.10.2016
comment
Это член TextInput, читайте документацию. Я связался с ним. - person dtech; 27.10.2016