我被覆蓋QGraphicsScene
和重載2方法:mouseDoubleClickEvent
和mouseReleaseEvent
。我希望在每個事件上執行不同的邏輯,但我不知道如何區分它?至少有1 mouseReleaseEvent
發生在mouseDoubleClickEvent
之前。如何在QGraphicsScene上區分mouseReleaseEvent和mousedoubleClickEvent
0
A
回答
1
對於雙擊時想要出現的邏輯,將代碼放在mouseDoubleClickEvent()
之內,並將代碼放在鼠標釋放時想要發生的邏輯上,將代碼放入mouseReleaseEvent()
。
如果您希望在用戶點擊但不雙擊時執行某些操作,則必須等待以查看它們是否點擊了兩次。在第一次鼠標釋放時,啓動一個200ms定時器。
如果您在計時器到期前得到mouseDoubleClickEvent()
,那麼這是雙擊,您可以執行雙擊邏輯。如果計時器到期之前,你得到另一個mouseDoubleClick()
然後你知道這是一個單一的點擊。
僞
main()
{
connect(timer, SIGNAL(timeout()), this, SLOT(singleClick()));
}
mouseReleaseEvent()
{
timer->start();
}
mouseDoubleClickEvent()
{
timer->stop();
}
singleClick()
{
// Do single click behavior
}
This答案給出了一個相當類似的解決方案。
+0
I我只使用mouseReleaseEvent是因爲一個原因 - 沒有事件mouseClickEvent。我希望在單擊和其他方面執行一些邏輯 - 雙擊。所以我不能使用你的解決方案 - 它已經實施並且不夠用。 –
+0
您應該使用該信息更新您的問題。 –
相關問題
- 1. Qt QGraphicsScene如何區分select和unSelect信號?
- 2. QGraphicsScene ::〜QGraphicsScene()分段錯誤
- 3. QGraphicsSimpleTextItem在QGraphicsScene中的分配
- 4. QGraphicsScene和定位
- 5. 如何顯示QGraphicsScene?
- 6. 如何在android上測試ext3分區?
- 7. 如何在Yii2上分區表?
- 8. 在Github上,你如何區分好壞?
- 9. 如何在android上掛載linux分區?
- 10. 如何在Oracle中使用交換分區進行分區和子分區?
- 11. 如何區分linux和mac
- 12. 如何區分touchesBegan和touchesMoved
- 13. 如何區分「0」和null?
- 14. 如何區分mouseDragged和mousePressed?
- 15. 如何區分int和long?
- 16. 如何區分Rs和%值?
- 17. Qt mouseReleaseEvent()沒有觸發?
- 18. 如何在Android中區分MMS和SMS?
- 19. 如何區分Safari和Chrome在CSS中?
- 20. 如何在iOS中區分ipv4和ipv6?
- 21. QGraphicsScene :: setSceneRect()分段錯誤
- 22. 如何在AirConsole上區分可靠和不可靠的信息
- 23. 如何在Android上區分簡體中文和繁體中文?
- 24. 如何在iOS5上區分屏幕鎖定和主頁按鈕?
- 25. 如何剪輯Qt中QGraphicsScene
- 26. 如何在QGraphicsScene中啓用拖動?
- 27. 如何在繼承QGraphicsEllipseItem添加到QGraphicsScene
- 28. 如何在QGraphicsScene中放置QFrame?
- 29. 如何在QGraphicsScene中添加項目?
- 30. 如何在QGraphicsView中適合QGraphicsScene
可能重複[在Qt中區分單擊和雙擊事件](http://stackoverflow.com/questions/4627347/distinguish-between-single-and-double-click-events-in-qt) –