J'essaye d'attraper des événements de presse de souris dans un QGLWidget. J'essaie d'utiliser les mouvements de la souris pour déplacer un curseur artificiel (un point "flottant") dans une fenêtre stéréo. Je réimplémentées mousePressEvent dans mon QGLWidget, voici les sections pertinentes des fichiers .h et .cpp:Pourquoi je ne reçois pas mousePressEvents dans un QGLWidget?
le fichier .h
protected:
void initializeGL();
void paintGL();
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
est la fonction Ici, dans le fichier .cpp
void ImageGLView::mousePressEvent(QMouseEvent *event)
{
if(FLOATING_DOT == mouseMode){
QPoint currentPos = event->pos();
lastPos = currentPos;
}
}
Rien d'exceptionnel ici ... mais mon mousePressEvent ne reçoit aucun événement. J'ai mis des points d'arrêt, et prendre d'autres actions, mais ces événements vont ailleurs
Je reçois les mouseMoveEvents, tant que le suivi de la souris est activé. Si je ne l'ai pas allumé, je ne les obtiens pas, même si j'appuie sur les boutons de la souris tout en déplaçant la souris. Cela semble être contraire à la documentation et à toutes les références QT. Cela me fait penser que quelqu'un d'autre obtient le mousePressEvents - mais ces chaînes de texte n'apparaissent nulle part ailleurs dans mon code. Compte tenu de la simplicité de ce que je fais, je ne sais pas quoi essayer ensuite - j'ai fait ce genre précis de choses dans d'autres codes QT GL sans problème - peut-être est-ce lié à la nature stéréo de la fenêtre? D'autres idées?
détails: QT4.6, Windows XP
Avez-vous essayé de placer un point d'arrêt dans l'événement 'bool QWidget :: (événement QEvent *)' sur l'événement 'mousePressEvent ((QMouseEvent *)); Que se passe-t-il lorsque vous entrez dans cette fonction? –
ne sais pas ce que vous voulez dire. Je mets des points d'arrêt partout dans ma fonction, aucun ne sera jamais atteint-- – jhowland