我正试图在QGLWidget中捕获鼠标按下事件。我试图使用鼠标的移动在立体窗口中移动人造光标(“浮动”点)。我在自己的QGLWidget来绘图重新实现mousePressEvent,这里的h和.cpp文件中的相关章节:为什么我没有在QGLWidget中获取mousePressEvents?
.h文件
protected:
void initializeGL();
void paintGL();
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
这里是在.cpp文件
功能 void ImageGLView::mousePressEvent(QMouseEvent *event)
{
if(FLOATING_DOT == mouseMode){
QPoint currentPos = event->pos();
lastPos = currentPos;
}
}
没有看中这里...但我mousePressEvent从来没有得到任何事件。我设置了断点并采取了其他操作,但这些事件正在其他地方发生。
只要启用了鼠标跟踪功能,我就可以获取mouseMoveEvents。如果我没有打开它,即使在移动鼠标的同时按下鼠标按钮,我也不会收到它们。这似乎与文档和所有QT参考文献相反。这让我觉得别人正在获取mousePressEvents - 但这些文本字符串不会出现在我的代码中的任何其他地方。
考虑到我在做什么的简单性,我真的不知道接下来要做什么 - 我在其他QT GL代码中完成了这种精确的事情 - 没有问题 - 也许它与窗户的立体感?任何其他想法?
细节:QT4.6,Windows XP中
你有没有试过在'mousePressEvent((QMouseEvent *)事件)'布线中的'bool QWidget :: event(QEvent * event)'中放置断点?当你进入该功能时会发生什么? – 2010-04-08 17:26:48
不确定你的意思。我在我的功能中随处可见断点,从来都没有达到 - – jhowland 2010-04-14 20:46:40