Qt Tooltip如何防止文本在内置延迟后消失?

Posted

技术标签:

【中文标题】Qt Tooltip如何防止文本在内置延迟后消失?【英文标题】:Qt Tooltip how to prevent the text from disappearing after the builtin delay? 【发布时间】:2014-01-25 20:45:30 【问题描述】:

我有一个QGraphicsScene,里面有几个QGraphicsItems。当我将鼠标悬停在 QGraphicsRectItem 上时,我想立即显示覆盖文本。只有当光标离开项目时,文本才会消失。

您可以在下面看到我尝试使用 whatsthis(使 python 崩溃)和工具提示。

使用工具提示,我可以使文本立即出现,但文本会在内置延迟后自行消失。

class Node(QGraphicsRectItem):
    def __init__(self, x, y, w, h, qpen, qbrush, text):
        QGraphicsRectItem.__init__(self)

        self.setRect(x, y, w, h)
        self.setBrush(qbrush)
        self.setPen(qpen)

        self.setAcceptHoverEvents(True)
        self.text = text

        #self.setFlag(QGraphicsItem.ItemIsMovable)
        #self.toolkit = QToolTip()
        #self.setToolTip(text)
        #self.setWhatsThis(self.text)

    def hoverEnterEvent(self, event):
        QToolTip.showText(event.screenPos(),self.text)

        #print("hoverEnterEvent : ".format(event))
        #print(type(self.toolTip))
        #self.QToolTip.showText(event.pos(),text)
        #event.ToolTip.showText(text)

        #QWhatsThis.showText(event.screenPos(),self.text)
        #self.enterWhatsThisMode()

    def hoverLeaveEvent(self, event):
        QToolTip.hideText()

        #print("hoverLeaveEvent : ".format(event))
        #self.QToolTip.hideText()
        #event.ToolTip.hideText()

        #QWhatsThis.hideText()
        #self.leaveWhatsThisMode()

我正在使用 python 3.3 和 pyside

【问题讨论】:

这可能是 ***.com/questions/13720465/… 的副本。另外看看this page for Qt,应该很容易适应你的情况。 @Schollii:很遗憾,没有。正如我提到的,这个答案修复了文本出现的延迟。但是,它并不能解决工具提示在 10 秒后消失的问题。查看第二个链接中的评论。 很好的观察,我很惊讶找到提供自定义弹出小部件的库,添加了其他链接的答案,也许有用。 【参考方案1】:

我认为this SO post 和this page 可能是您的答案。但正如您所指出的,页面底部的评论表明这仅适用于控制工具提示出现的时间,而不是它保持可见的时间。不幸的是,该错误项的链接不再存在(另请参阅Keep Qt tooltip open)。我找到的最接近的是https://bugreports.qt-project.org/browse/QTBUG-31707,它没有分配给任何人,这表明你要么必须找到一个提供你想要的库,要么你必须实现自己的库。对于后者,您可能需要查看QxtToolTip 或example

【讨论】:

以上是关于Qt Tooltip如何防止文本在内置延迟后消失?的主要内容,如果未能解决你的问题,请参考以下文章

2021-11-11el-tooltip提示不消失问题记录

点击后jQuery UI Tooltip不会消失

qt中怎么实现tooltip 的功能

Qt QAction ToolTip显示问题,禁止toolbar上默认显示的tooltip

C#.NET 中 树节点的提示框(TOOLTIP)如何设置延迟时间

Qt Tooltip详解