2013-04-11 1 views
0

내 프로그램이 Qt에서 작동하고 있는데 문제가 있으며 웹 사이트에서 무료 응답이 있습니다. 사용자가 마우스를 움직일 때 이미지를 업데이트해야하지만 이미지를 업데이트하는 데 시간이 많이 걸립니다. 사용자가 마우스를 빠르게 움직이면 시스템이 많은 마우스 움직임 이벤트를 생성하여 결국 백그라운드 프로세스가 막히게됩니다. 이벤트의 일부를 걸러 내야합니다. 나는의 QApplication에 삽입 이벤트 필터에 의해 마우스 이동 이벤트를 필터링 : 나는 마우스 이벤트를 잡을되면필터 마우스가 이벤트를 이동하여 다시 전송합니다.

qApp->insertEventFilter(this) 

, 나는 QMouseEvent하고있는 QObject의 포인터, 활성 QTimer를 저장합니다. 다른 mouseMouseEvent는 제한 시간 전에이를 덮어 쓸 수 있습니다. 시간 초과 후 마지막 이벤트는 게시됩니다. 내가 사용할 수 없습니다

QApplication::sendEvent(XX) or postEvent(xx) 

이 다시는 내 이벤트 필터에 의해 사로 잡았되기 때문. 어떻게 작동시킬 수 있습니까?

답변

0

이벤트를 필터링하지 마십시오. 그 대신 데이터를 생성하는 책임이있는 백그라운드 작업자를 변경하여 필요하지 않은 작업에 시간을 투자하지 않도록하십시오.

+0

Qt가 새로워졌습니다. 답변 해 주셔서 감사합니다! 즉, 우리의 백그라운드 작업자가 이벤트를 수신하는 동안 이벤트의 일부를 삭제하도록하고, 이벤트가 발생하지 않도록하십시오. –

관련 문제