2016-05-14 15 views
0

Ich habe viel Zeit damit verbracht, dies ohne Erfolg zu lösen. Ich brauche nur ein Signal, wenn auf das TextInput-Element geklickt wird. Wie onClicked. Nur um zu wissen, wurde dieser TextInput ausgewählt oder angeklickt.QML TextInput Signal

Ich habe mehr TextInput-Elemente und ich brauche nur die aktuelle, um das Signal zu emittieren. Ich habe versucht, den Fokus zu verwenden, aber das vorherige Element wurde ebenfalls ausgegeben.

Vielen Dank.

+1

Wollen Sie wirklich wissen müssen, wenn die TextInput- geklickt wird, oder tun Sie müssen nur wissen, wenn es fokussiert erfolgt Handhabung ist? Sie könnten die 'activeFocus' -Eigenschaft so hören:' onActiveFocusChanged: if (activeFocus) {/ * mach Sachen hier * /} ' – GrecKo

Antwort

0

TextArea gibt beim Klicken kein Signal aus. Wenn Sie nur an Klicks interessiert sind, sollten Sie oben eine MouseArea hinzufügen. Sie können mouse.accepted auf false setzen, um das Ereignis zu blasen, damit TextInput das click-Ereignis erhält und verarbeitet. Hinweis: werden Sie das Ereignis in der MouseArea bevor in der TextInput-

TextInput { 
    // ... 

    MouseArea { 
    anchors.fill: parent 
    propagateComposedEvents: true 

    onClicked: { 
     console.log("clicked on TextInput"); 
     mouse.accepted = false; 
    } 
    } 
}