问题描述
我正在寻找一些方法来为 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工具提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!