我正試圖在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