2013-04-11 127 views
0

我的程序正在研究Qt,並且我有一個問題,並且在網站上有免費的答案。 我們的產品需要在用戶移動鼠標的同時更新圖片,但更新圖片非常耗時。如果用戶快速移動鼠標,系統會產生大量鼠標移動事件,最終導致後臺進程堵塞。因此, ,我們需要過濾掉部分事件。 我通過插入事件過濾器在過濾器的QApplication鼠標移動事件:過濾器鼠標移動事件並再次發送

qApp->insertEventFilter(this) 

一旦我趕鼠標事件,我將存儲QMouseEvent和QObject的的指針,和活性QTimer。其他mouseMouseEvent可以在超時之前覆蓋它們。超時後,最後一個事件將發佈。 我不能使用:

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

,因爲它會通過我的事件過濾器再次被逮住。 我該如何使它工作?

回答

0

請勿過濾事件。取而代之的是,更改負責生成數據的後臺工作人員,以確保您不會花費時間在不需要的東西上。

+0

我是Qt新手,感謝您的回答!這意味着,讓我們的後臺工作人員在接收事件時放下一些事件,而不是在事件發生前進行。 – 2013-04-11 15:25:01