Qt工具提示如何防止文本在内置延迟后消失?

2024-09-29 21:40:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个QGraphicsScene,里面有几个QGraphicsItem。当我将鼠标悬停在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()

我使用的是python3.3和pyside


Tags: 工具text文本selfeventinitdefprint
1条回答
网友
1楼 · 发布于 2024-09-29 21:40:43

我想this SO post和{a2}可能是你的答案。但正如您所指出的,页面底部的注释表示这只用于控制工具提示出现的时间,而不是它保持可见的时间。{a3}(很不幸,这个链接已经不存在了)。我发现的最接近的是https://bugreports.qt-project.org/browse/QTBUG-31707,它还没有分配给任何人,这意味着要么必须找到一个提供所需内容的库,要么必须实现自己的库。对于后者,您可能需要查看QxtToolTip或{a6}

相关问题 更多 >

    热门问题