Suivi des coordonnées de la souris dans Qt
Disons que j'ai un widget dans la fenêtre principale, et souhaitez suivre la position de la souris UNIQUEMENT sur le widget: cela signifie que la gauche-faible angle de widget doit être local (0, 0).
Q: Comment puis-je faire cela?
p.s. NON des fonctions ci-dessous ne sont que.
widget->mapFromGlobal(QCursor::pos()).x();
QCursor::pos()).x();
event->x();
OriginalL'auteur Mike | 2013-08-31
Vous devez vous connecter pour publier un commentaire.
J'ai peur, vous ne serez pas heureux avec vos exigences en bas à gauche doit être de (0,0). Dans Qt systèmes de coordonnées (0,0) est en haut à gauche. Si vous pouvez accepter que. Le code suivant...
...vous donnera les coordonnées de votre pointeur de souris dans votre widget.
Vous avez demandé ici: stackoverflow.com/questions/18551162/.... C'est le "do it yourself" solution. J'ai supposé, avec cette question ici, vous avez demandé plus facile pour une Qt. Je dois vous décevoir, je ne suis pas au courant d'une façon de faire de Qt changer de système de coordonnées facilement. Vous aurez à faire les transformations de coordonnées vous-même. Si j'étais vous, je voudrais essayer de vivre avec le Qt système. Juste pour bouger (0,0) du haut vers le bas dans le coin de mal seulement votre rendement du programme inutilement.
OK, nous allons considérer que le coin supérieur gauche du WIDGET est (0,0). De toute façon donner mauvaise sortie.
Comment loin de la vérité? Fonctionne parfaitement pour moi. Coin supérieur gauche est (0,0), coin supérieur droit est (largeur,0), le coin inférieur gauche est (0, hauteur), le coin inférieur droit est (largeur,hauteur). Le suivi dans le widget.
Fixé à l'aide de mapFromGlobal(), je vous remercie.
OriginalL'auteur Greenflow
Si tout ce que vous voulez faire est de signaler la position de la souris en coordonnées comme si le widget du coin inférieur gauche est (0,0) et Y montait en remontant, puis le code ci-dessous ne. Je pense que la raison pour vouloir d'un tel code est erroné, puisque les coordonnées de tout le reste à l'intérieur de ce widget ne fonctionne pas de cette façon. Alors, pourquoi voudriez-vous, je ne peux pas comprendre, mais ici vous allez.
OriginalL'auteur Kuba Ober