2015-04-03 40 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)