2

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

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

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

非常感谢你帮我解决这个问题。

4

3 回答 3

2

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

参见:Qxt::ToolTip

于 2013-08-24T02:31:16.120 回答
0

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

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. 
于 2013-08-24T08:56:55.933 回答
0

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

您可以在鼠标悬停事件中使用或调用小部件或对话框

于 2013-08-24T07:55:10.047 回答