2
我有一個QGraphicsItem的子類。默認情況下,如果指針位於item的boundingRect中並且mousePressEvent也發生,QGraphicsItem只接收mouseMoveEvents。有QGraphicsItem接收所有鼠標移動?
我想讓這個子類接收在QGraphicsScene中發生的所有mouseMoveEvents,它是(最好在項目座標中的)成員。這可能嗎?
我有一個QGraphicsItem的子類。默認情況下,如果指針位於item的boundingRect中並且mousePressEvent也發生,QGraphicsItem只接收mouseMoveEvents。有QGraphicsItem接收所有鼠標移動?
我想讓這個子類接收在QGraphicsScene中發生的所有mouseMoveEvents,它是(最好在項目座標中的)成員。這可能嗎?
是的。您可以使用QGraphicsItem::grabMouse()
來確保您獲得所有鼠標事件。如果這樣做,那麼Qt promises the following:
此產品將獲得現場所有的鼠標事件,直到任意 將會出現以下事件:
- 項變爲不可見
- 該項目被刪除從現場
- 項目被刪除
- 項調用ungrabMouse()
- 另一個項目調用grabMouse();當其他項目調用ungrabMouse()時,該項目將重新獲得鼠標抓取。
有沒有辦法讓多個QGraphicsItem同時接收mousemove事件? – dmd 2012-07-17 18:43:34
沒有更多的細節,我不能說這樣做的最佳方式是什麼。儘管如此,你試圖聽起來越來越黑客。也許你應該退後一步,提出一個新的問題,無論你最終想達到什麼目標。 – cgmb 2012-07-17 19:12:59
基本上我想有一堆自發的代理類型的東西,對鼠標指針的位置作出反應。 – dmd 2012-07-18 20:02:30