2010-04-07 5 views
0

QGLWidget에서 마우스 누르기 이벤트를 잡으려고합니다. 스테레오 윈도우에서 인공 커서 ("부동"점)를 움직이기 위해 마우스의 움직임을 사용하려고합니다.QGLWidget에서 mousePressEvents가 표시되지 않는 이유는 무엇입니까?

여기

protected:

void initializeGL(); 
    void paintGL(); 

    void mouseMoveEvent(QMouseEvent *event); 
    void mousePressEvent(QMouseEvent *event); 

.H 파일을 .cpp 파일

의 기능입니다 : 나는 내 자신의 QGLWidget에 mousePressEvent를 다시 구현 한, 여기에 .H 및 .CPP 파일의 관련 섹션은

void ImageGLView::mousePressEvent(QMouseEvent *event)
{

if(FLOATING_DOT == mouseMode){ 
     QPoint currentPos = event->pos(); 
     lastPos = currentPos; 
    } 

}

아무것도 여기에 화려한 ...하지만 내 mousePressEvent 어떤 이벤트를 가져옵니다 없다. 중단 점을 설정하고 다른 작업을 수행하지만 그 이벤트는 다른 곳으로 이동합니다

마우스 트래킹이 켜져있는 한 mouseMoveEvents가 표시됩니다. 내가 마우스를 움직이는 동안 마우스 버튼을 눌러도, 내가 켜지지 않으면, 나는 그것을 얻지 못한다. 이것은 문서 및 모든 QT 참조에 반하는 것으로 보입니다. 이것은 다른 누군가가 mousePressEvents를 얻고 있다고 생각하게 만듭니다. 그러나 그 텍스트 문자열은 내 코드의 다른 곳에 나타나지 않습니다.

내가하는 일의 단순성을 감안할 때, 다음에 무엇을 시도해야할지 모르겠습니다. 문제없이 다른 QT GL 코드에서이 정확한 종류의 작업을 수행했습니다. 아마도 스테레오 성격? 다른 아이디어?

세부 정보 : 당신은 Qt는 4.6.2를 사용하는 경우는 매우 버그 버전이기 때문에 QT4.6, 윈도우 XP는

+0

'mousePressEvent ((QMouseEvent *) event);'줄에'bool QWidget :: event (QEvent * event)'에 중단 점을 넣으려고 했습니까? 당신이 그 기능을 수행하면 어떻게됩니까? –

+0

무슨 뜻인지 확실하지 않습니다. 나는 모든 곳에서 중단 점을 넣었고 아무도 도달하지 못했다. – jhowland

답변

0

, 다음이 문제가 될 수 있습니다 QScrollArea는 동안 이벤트를 제공하지 않는, 때로는 QTimer를 지연 마우스 포인터가 앱 창 위에 있지 않습니다. 최신 버전을 다운로드 할 수 있습니다.

관련 문제