我有一个QGraphicsView
如何显示 aQGraphicsScene
其中包含一个QGraphicsItem
. 我的 Item 实现了hoverMoveEvent(...)
触发QToolTip
.
我希望工具提示在鼠标移动到项目上方时跟随鼠标。然而,这只有在我做以下两件事之一时才有效:
- 要么创建两个
QToolTip
s,其中第一个只是一个虚拟对象并立即被第二个覆盖。 - 或者第二,使提示的内容随机化,例如放入
rand()
它的文本中。
此实现无法正常工作。它让工具提示出现,但它不跟随鼠标。就好像它意识到它的内容没有改变并且它不需要任何更新一样。
void MyCustomItem::hoverMoveEvent(QGraphicsSceneHoverEvent *mouseEvent)
{
QToolTip::showText(mouseEvent->screenPos(), "Tooltip that follows the mouse");
}
此代码创建所需的结果。工具提示跟随鼠标。缺点是,由于创建了两个工具提示,您会看到轻微的闪烁。
void MyCustomItem::hoverMoveEvent(QGraphicsSceneHoverEvent *mouseEvent)
{
QToolTip::showText(mouseEvent->screenPos(), "This is not really shown and is just here to make the second tooltip follow the mouse.");
QToolTip::showText(mouseEvent->screenPos(), "Tooltip that follows the mouse");
}
第三,这里提出的解决方案也有效。但是我不想显示坐标。工具提示的内容是静态的...
如何通过创建两个工具提示或第二次更新提示的位置来使这项工作没有描述的闪烁?