2016-05-14 2 views
0

Я потратил много времени, решив это без успеха. Мне нужен только сигнал, когда он нажимается на элемент textInput. Как onClicked. Чтобы сообщить об этом, этот TextInput был выбран или нажат.QML TextInput signal

У меня есть больше элементов TextInput, и мне нужен только текущий, чтобы излучать сигнал. Я попытался использовать фокус, но предыдущий элемент тоже испугался.

Большое спасибо.

+1

вам действительно нужно знать, когда TextInput нажата, или вы просто должны знать, когда она ориентирована ли? Вы можете прослушать свойство 'activeFocus' следующим образом:' onActiveFocusChanged: if (activeFocus) {/ * сделать здесь здесь * /} ' – GrecKo

ответ

0

TextArea не выдает сигнал при нажатии. Если вас интересуют только клики, вы должны добавить MouseArea сверху. Вы можете установить mouse.accepted в false, чтобы позволить пузырьку события, чтобы TextInput получил событие click и обработал его. Обратите внимание, вы получите событие в MouseArea перед обработкой происходит в TextInput

TextInput { 
    // ... 

    MouseArea { 
    anchors.fill: parent 
    propagateComposedEvents: true 

    onClicked: { 
     console.log("clicked on TextInput"); 
     mouse.accepted = false; 
    } 
    } 
} 
Смежные вопросы