自定义 Qt QGraphicsItem 工具提示

Pal*_*ler 5 c++ qt

我正在寻找一些方法来为QGraphicsItem.

我知道我可以setToolTip用来设置工具提示的文本。现在我想要的是当鼠标悬停在QGraphicsItem对象的不同部分时动态更改文本。

我想做的是当我收到一个事件时QEvent::ToolTip,我会更改该事件处理程序中的工具提示文本。但是,我无法找到一个事件函数收到QEvent::ToolTipQGraphicsItem

或者是否有一些方法可以处理鼠标悬停 2 秒的事件。

我怎样才能做到?

pne*_*zis 3

hoverMoveEvent您可以在派生类中实现QGraphicsItem,并根据图形项内的位置设置工具提示

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");
}
Run Code Online (Sandbox Code Playgroud)

请注意,您必须为项目启用悬停事件。