本文介绍了自定义Qt QGraphicsItem工具提示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一些方法来为 QGraphicsItem 实现简单的自定义工具提示.

I'm looking for some ways to implement a simple custom tooltip for QGraphicsItem.

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

I know that I can use setToolTip to set text for tooltip. Now what I want is to change the text dynamically when the mouse hovers at different parts of a QGraphicsItem object.

我想做的是,当我得到一个事件 QEvent :: ToolTip 时,我在该事件处理程序中更改了工具提示文本.但是,我找不到为 QGraphicsItem 接受 QEvent :: ToolTip 的事件函数.

What I'm thinking to do is when I get an event QEvent::ToolTip, I change the tooltip text in that event handler. However, I cannot find an event function that recieve QEvent::ToolTip for QGraphicsItem.

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

Or is there some ways to handle an event that mouse hovers for 2 seconds.

我该怎么做?

推荐答案

您可以实现 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");
}

请注意,您必须为商品启用悬停事件.

Notice that you have to enable hover events for your item.

这篇关于自定义Qt QGraphicsItem工具提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-27 08:53