我正在寻找一些方法来实现一个简单的自定义工具提示的QGraphicsItem。
我知道我可以使用setToolTip为工具提示设置文本。现在,我想要的是当鼠标悬停在QGraphicsItem对象的不同部分时动态更改文本。
我想要做的是,当我得到一个事件QEvent::ToolTip时,我改变了事件处理程序中的工具提示文本。但是,我找不到接收QGraphicsItem QEvent::ToolTip事件函数。
或者,是否有一些方法可以处理鼠标悬停2秒的事件。
我怎么才能做到呢?
发布于 2016-04-19 21:44:13
您可以在派生的QGraphicsItem类中实现hoverMoveEvent,并基于图形项中的位置实现set the tooltip
void MyItem::hoverMoveEvent(QGraphicsSceneHoverEvent* event)
{
QPointF p = event->pos();
// use p.x() and p.y() to set the tooltip accrdingly, for example:
if (p.y() < height()/2)
setTooltip("Upper Half");
else
setTooltip("Bottom Half");
}请注意,您必须为您的项目执行enable hover events。
https://stackoverflow.com/questions/36710308
复制相似问题