Qt的工具提示如何防止文本内建延迟后消失?(Qt Tooltip how to prevent th

2019-09-29 06:27发布

我有一个QGraphicsScene和里面我有几个QGraphicsItem秒。 当我将鼠标悬停在一个QGraphicsRectItem ,我想立刻表现出覆盖文本。 只有当光标离开该项目,则文本可以消失。

下面你可以看到我尝试使用whatsthis(其崩溃蟒蛇)和工具提示。

有了提示,我能够使文本立即出现,但内置的延迟后,在自己的文字消失。

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

Answer 1:

我想这个SO张贴和此页可能是你的答案。 但正如你指出,在页面底部的注释表明控制这只能提示如何尽快出现,它不可见时间有多长。 不幸的是,链接到错误的项目已不存在(参见保持Qt的提示打开 )。 我发现的最接近是https://bugreports.qt-project.org/browse/QTBUG-31707尚未分配给任何人,这表明你要么必须找到一个库,提供你想要的东西,或者短的这一点,你必须实现自己的。 对于后者,你可能想看看QxtToolTip或例子



文章来源: Qt Tooltip how to prevent the text from disappearing after the builtin delay?