Я пытаюсь перехватить события нажатия мыши в QGLWidget. Я пытаюсь использовать движения мыши для перемещения искусственного курсора («плавающей» точки) в стерео окне. Я переопределил mousePressEvent в своем собственном QGLWidget, вот соответствующие разделы файлов .h и .cpp:
.h файл
protected:</p>
<pre><code> void initializeGL();
void paintGL();
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
Вот функция в файле .cpp
void ImageGLView::mousePressEvent(QMouseEvent *event)<br>
{ </p>
<pre><code> if(FLOATING_DOT == mouseMode){
QPoint currentPos = event->pos();
lastPos = currentPos;
}
}
Ничего необычного здесь ... но мой mousePressEvent никогда не получает никаких событий. Я устанавливаю точки останова и предпринимаю другие действия, но эти события идут куда-то еще
Я получаю mouseMoveEvents, если у меня включено отслеживание мыши. Если он не включен, я не получаю его, даже если нажимаю кнопки мыши во время перемещения мыши. Похоже, что это противоречит документации и всем ссылкам на QT. Это заставляет меня думать, что кто-то другой получает mousePressEvents - но эти текстовые строки больше нигде не появляются в моем коде.
Учитывая простоту того, что я делаю, я не знаю, что делать дальше - я сделал эту точную вещь в другом коде QT GL без проблем - возможно, это связано со стерео природа окна? Есть другие идеи?
подробности: QT4.6, Windows XP