我正在尝试使用Qt开发一个功能,我不知道是否可以实现。这是要求:
当用户将鼠标悬停在节点(从QGraphicsItem派生的对象)上时,将在节点附近显示一个窗口,在窗口中可能会有一些直方图或按钮可以单击以显示更多信息。当鼠标离开窗口时,它将自动关闭。
我尝试使用工具提示,因为它可以在节点附近弹出并在鼠标离开时关闭,但它只能显示文本。所以,它仍然不能那样工作。我想知道是否有另一种方法可以做到这一点?我做了很多谷歌搜索,但仍然没有答案。
非常感谢你帮助我。
答案 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.