Ich möchte ein QML-Element erstellen, das verschwindet, wenn sich die Maus außerhalb davon bewegt. Hier ist mein Code:Abfangen von Mausereignissen von QML
Item {
id: disappearing_element
ListView { ... }
MouseArea {
id: collapser
anchors.fill: parent
propagateComposedEvents: true
hoverEnabled: true
onExited: {
disappearing_element.visible = false
}
}
}
Es funktioniert gut, aber MouseArea
breitet sich Ereignisse wie onClicked()
onDoubleClicked()
nur (wie gesagt in Qt-Dokumentation).
Gibt es eine Möglichkeit, disappearing_element
's Kinder über Mauseingabe und Mausausgangsereignisse zu benachrichtigen (ohne ein Popup
Element zu verwenden)?
Sie können 'disappearing_element.visible' für Benachrichtigungen an die Kinder verwenden, indem Sie an sie binden, d. H.' Property bool someProp: parent.visible; onSomePropChanged: {... deine Sachen ...} ' – dtech
Du verstehst mich falsch. Ich möchte MouseEvent an die Kinder von 'displayning_element' weiterleiten, um zu prüfen, ob einer von ihnen Mauszeiger enthält oder nicht. –
Haben Sie versucht, die 'Item itemAt (int x, int y)' Funktion von 'ListView' zu verwenden? – dtech