2015-04-03 41 views
1

我想用鼠標指針(無懸停)將線條的端點拖動到QGraphicsItem時顯示工具提示。如何在qt中定位工具提示graphicsview

所以我有鼠標事件,我想調用QToolTip :: showText(QPoint pt,String str),我想在相對於鼠標指針的正常位置顯示工具提示。

但無論我在event.pos()上嘗試(widget.mapToGlobal,item.mapToScene),工具提示對於我的屏幕或圖形視圖,而不是鼠標來說都是真實的。

也許我錯過了一些簡單的,但我真的很感謝這一點幫助。

widget = item.scene().views()[0] #there is only one view 
p = event.pos() 
pt = widget.mapToGlobal(QtCore.QPoint(p.x(), p.y())) 
QtGui.QToolTip.showText(pt, text) 
+0

也許嘗試使用event.screenPos(); – Chernobyl 2015-04-03 20:15:34

+0

做到了!我會把它作爲我自己的答案,因爲我不能將你的答案設置爲答案... – Lars 2015-04-04 16:38:17

+0

是的,因爲我發佈這個評論,我只是不想發佈可能好或不好的答案,所以我寫了評論,現在我可以將其作爲答案發布,因爲我知道這是正確的解決方案,對於計算器來說這是正常的做法。如果它對你有幫助,你可以升級並接受我的答案。謝謝。 – Chernobyl 2015-04-04 17:23:14

回答

2

QGraphicsSceneMouseEvent具有另一種有用的方法 - 在screenPos()場景座標返回鼠標光標的位置。嘗試使用它。例如:

QtGui.QToolTip.showText(event.screenPos(), text)