我使用JSON接收数据并将其放入List。有一个标签显示我从JSON收到的文本。在某些情况下,文本中有一个链接。默认情况下,您无法单击标签上的链接。有没有办法让Link可以点击?
Label {
text: "Click here to open browser and get redirected to www.stackoverflow.com";
}
输出为“单击此处打开浏览器并重定向到www.stackoverflow.com”,但无法点击链接到StackOverflow。
答案 0 :(得分:2)
使用TextArea而不是Label并将属性editable设置为false,它看起来与Label相同。 不要忘记将inputMode设置为Text或Chat。
TextArea {
text: "http://www.google.com"
editable: false
inputMode: TextAreaInputMode.Text
}
答案 1 :(得分:2)
根据Text Styles documentation,您实际上可以在标签本身中使用HTML来将文本设置为链接样式。如果您要应用任何自己的样式,您需要注意一些怪癖,如Blackberry Developer支持论坛here中所述。下面的示例应该可以使用默认样式,该样式将链接为蓝色,使用粗体和下划线:
Label {
text: "<html>Click here to open browser and get redirected to <a href='http://www.stackoverflow.com'>www.stackoverflow.com</a></html>"
}
注意:您可能需要在multiline: true
上设置Label
,以便查看所有文字,具体取决于您的布局。
答案 2 :(得分:1)
您应该将Text.Rich Text值指定给Label的“text Format”属性:
import QtQuick 1.1
Rectangle {
width: 360
height: 360
Text {
text: "Click <a href=\"http://google.com\">here</a>"
anchors.centerIn: parent
textFormat: Text.RichText
onLinkActivated: {
Qt.openUrlExternally(link)
}
}
}