在我的 QML Text 元素中,我希望有一个指向网站的超链接,并设法让它看起来像一个等等。但是当我单击或触摸它时,什么也没有发生,该链接应该在默认浏览器中打开。
Text {
id: link_Text
text: '<html><style type="text/css"></style><a href="http://google.com">google</a></html>'
}
知道我做错了什么吗?
好的,我刚刚发现我必须添加这个:
onLinkActivated: Qt.openUrlExternally(link)
我最初没有考虑过这样的事情,因为我认为如果字符串格式正确,它会自行打开链接。
我面临一个模仿超链接的任务:当用户将鼠标悬停在它上面时,文本应该看起来像一个超链接。但是当用户点击链接时,应该调用客户处理程序而不是打开 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
}
如果您还想更改 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
}
}