Почему я не получаю mousePressEvents в QGLWidget? - PullRequest
0 голосов
/ 07 апреля 2010

Я пытаюсь перехватить события нажатия мыши в 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

1 Ответ

0 голосов
/ 18 июля 2010

Если вы используете Qt 4.6.2, то это может быть проблемой, потому что это очень глючная версия: QScrollArea иногда отстает, даже QTimer не доставляет события, пока указатель мыши не находится над окном приложения. Вы можете попробовать загрузить более новую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...