【问题标题】:PyQt5 QLabel hyperlink tooltip/hovertextPyQt5 QLabel 超链接工具提示/悬停文本
【发布时间】:2021-11-19 19:40:05
【问题描述】:

为什么这不起作用或任何简单的替代方法:

label= QLabel("<b>Name</b>: ABC | <b>Contact</b>: <a style='text-decoration:none;color:black'href='mailto:abc@gmail.com' title='this is a link to email'>abc@gmail.com</a>")
label.setTextFormat(Qt.RichText)
label.setOpenExternalLinks(True)

除标题外,一切正常。 悬停此链接时如何显示悬停文本

【问题讨论】:

    标签: python python-3.x pyqt pyqt5


    【解决方案1】:

    Qt 仅支持limited subset of HTML,不包含锚点的'title'关键字。

    另一方面,QLabel 有linkHovered 信号,可用于显示QToolTip:

    titles = {
        'mailto:abc@gmail.com': 'this is a link to email'
    }
    
    def hover(url):
        if url:
            QToolTip.showText(QCursor.pos(), titles.get(url, url))
        else:
            QToolTip.hideText()
    
    label= QLabel("<b>Name</b>: ABC | <b>Contact</b>: <a style='text-decoration:none;color:black'href='mailto:abc@gmail.com'>abc@gmail.com</a>")
    label.setTextFormat(Qt.RichText)
    label.setOpenExternalLinks(True)
    label.linkHovered.connect(hover)
    

    【讨论】:

    • 感谢@musicamante 的精彩解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 2011-06-26
    相关资源
    最近更新 更多