QML: MouseArea enfoncé et faites glisser
Il y a une petite chose que j'ai absolument besoin pour l'application je développe: je dois être en mesure de faire glisser un objet sur un autre, et au moins l'un d'entre eux remarquent qu'ils sont sécants.
Donc, j'ai le truc, c'est que l'un des éléments doit accepter le onEntered signal eventhoug de la souris est pressé de se former à l'extérieur.
Par exemple:
import QtQuick 1.0
Rectangle{
id: base
width: 500
height: 500
MouseArea{ //Even without this mousearea I don't get what i want.
anchors.fill: parent
//onPressed:{console.log("big")}
}
Rectangle{
id: t
width: 100
height: 100
color: "red"
MouseArea{
anchors.fill: parent
hoverEnabled: true
onPressed:{console.log("little-press")}
onEntered:{console.log("little-enter")}
drag.target: t
}
}
}
Ce que je veux, c'est d'appuyer sur le bouton de la souris en dehors de la place rouge et le déplacer sans relâcher le bouton. Lorsque la souris passe sur le rectangle rouge, je veux le signal onEntered d'être émis. Je n'ai pas understang pourquoi il n'est pas rependu car onEntered devrait seulement se soucient de la souris se trouvant à l'intérieur de la mouseArea, pas sur les boutons.
Aucune idée de comment le faire?
Merci beaucoup.
OriginalL'auteur ddeunagomez | 2013-01-08
Vous devez vous connecter pour publier un commentaire.
Votre code ne fonctionne pas car à ce moment, une souris pourront être au-dessus de l'autre, les événements de la souris sera prise par seulement que la souris de la zone qui est en haut (jusqu'à ce que vous avez modifié le vol de la propriété, etc.). Ainsi, votre rectangle en bas de la propriété comme hover etc ne fonctionnent pas parce que tous ces événements seront capturés par le rectangle supérieur.
Au lieu de cela, essayez ceci :
Endroits où j'ai imprimé les messages, vous pouvez émettre des signaux.
OriginalL'auteur Amit Tomar