我在寫一個使用Qt Graphics View框架的程序。我已將QGraphicsItem
分類到包含其他QGraphicsItem
(或其他子類)的類。此課程是包含的QGraphicsItem
的母公司;這個想法是使用複合對象。如何將mousePressEvent()傳播到一組QGraphicsItems?
從docs它似乎是在我做的嘗試,實現了衝突:
- 調用
ignore()
在mousePressEvent
會讓我的對象不動。我想要移動它。 - 調用
accept()
inmousePressEvent
將防止事件傳播到子對象。一些子對象應該對鼠標事件作出反應。
我該如何做這項工作?
您是否考慮過通過讓父處理程序調用QApplication :: postEvent將事件發送給每個項目的子項? – kenrogers 2012-03-02 13:08:30
忽略我最後的評論。餿主意。請參閱下面的Styne答案。 – kenrogers 2012-03-02 13:16:36
我現在正在嘗試:鼠標左鍵是移動動作的開始,所以它在'mousePressEvent()'中被接受並由對象處理。沒有其他對象會得到這個事件。對於其他輸入(右鍵,修飾鍵),該事件將被忽略,並將移動到下一個對象。 Stynes666是正確的,有沒有什麼意義的東西。 – 2012-03-06 13:31:25