如何在工具提示中绘制内容?

时间:2013-08-23 23:56:24

标签: qt hover tooltip draw

我正在尝试使用Qt开发一个功能,我不知道是否可以实现。这是要求:

当用户将鼠标悬停在节点(从QGraphicsItem派生的对象)上时,将在节点附近显示一个窗口,在窗口中可能会有一些直方图或按钮可以单击以显示更多信息。当鼠标离开窗口时,它将自动关闭。

我尝试使用工具提示,因为它可以在节点附近弹出并在鼠标离开时关闭,但它只能显示文本。所以,它仍然不能那样工作。我想知道是否有另一种方法可以做到这一点?我做了很多谷歌搜索,但仍然没有答案。

非常感谢你帮助我。

3 个答案:

答案 0 :(得分:2)

如果你可以使用第三方库,Qxt提供了一个提供基于QWidget的工具提示的类,它将允许你使用任意小部件作为工具提示而不仅仅是文本。

请参阅:Qxt::ToolTip

答案 1 :(得分:0)

您不必为您的应用使用工具提示

您可以在悬停鼠标事件

上使用或调用窗口小部件或对话框

答案 2 :(得分:0)

请参考Qt示例EmbeddedDialog示例,它是高级的,但您可以了解hover Enter / Leaving事件是如何工作的。我个人更喜欢不为每个项目创建Popupdialog实例,如果只是nesessary创建它。否则,创建一个对话框,并通过构造函数初始化将其引用传递给所有项。

1. These are the API you are intrested on, reimplemet this.
       QGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) and void  QGraphicsItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)     
2. When You create Dialog, You can pass Qt::WindowFlags as Qt::ToolTip.