31

在我的 QML Text 元素中,我希望有一个指向网站的超链接,并设法让它看起来像一个等等。但是当我单击或触摸它时,什么也没有发生,该链接应该在默认浏览器中打开。

Text {
    id: link_Text
    text: '<html><style type="text/css"></style><a href="http://google.com">google</a></html>'
}

知道我做错了什么吗?

4

3 回答 3

58

好的,我刚刚发现我必须添加这个:

onLinkActivated: Qt.openUrlExternally(link)

我最初没有考虑过这样的事情,因为我认为如果字符串格式正确,它会自行打开链接。

于 2012-09-21T18:57:22.663 回答
0

我面临一个模仿超链接的任务:当用户将鼠标悬停在它上面时,文本应该看起来像一个超链接。但是当用户点击链接时,应该调用客户处理程序而不是打开 URL。也许这对某人有用。

Text{
    id: hyperlinkButtonText
    text: "Hyperlink button"
    color: application.primaryColor
    font.pixelSize: 12
    font.bold:true 

    MouseArea{
        id: mouseHyperlinkArea
        anchors.fill: parent
        hoverEnabled: true
        cursorShape: Qt.PointingHandCursor
        onClicked: {
            // to do something on clicking the link
        }
    }            
}
Rectangle{ /*Here is an underline item for the text above*/
    visible: mouseHyperlinkArea.containsMouse
    anchors.top:hyperlinkButtonText.bottom
    anchors.topMargin: -1
    width:hyperlinkButtonText.width
    height: 0.5
    color: application.primaryColor
} 
于 2021-10-22T10:32:16.443 回答
0

如果您还想更改 Hover 上的光标,可以执行以下组合:

    Text {
        id: link_Text
        text: '<html><style type="text/css"></style><a href="http://google.com">google</a></html>'
        onLinkActivated: Qt.openUrlExternally(link)
        MouseArea {
            id: mouseArea
            anchors.fill: parent
            cursorShape: Qt.PointingHandCursor
        }
    }
于 2021-10-19T23:07:23.917 回答