1

我正在使用 JSON 接收数据并将其放入列表中。有一个标签显示我从 JSON 接收的文本。在某些情况下,文本中有一个链接。默认情况下,您不能单击标签中的链接。有没有办法让链接可以点击?

Label {
       text:  "Click here to open browser and get redirected to www.stackoverflow.com";
       }

输出为“单击此处打开浏览器并重定向到 www.stackoverflow.com”,但指向 StackOverflow 的链接不可单击。

4

3 回答 3

2

使用 TextArea 而不是 Label 并将 property editable 设置为 false,它看起来与 Label 相同。不要忘记将 inputMode 设置为 Text 或 Chat。

TextArea {
        text: "http://www.google.com"
        editable: false
        inputMode: TextAreaInputMode.Text
}
于 2013-02-04T12:59:42.350 回答
2

根据文本样式文档,您实际上可以在标签本身中使用 HTML 将文本样式设置为链接。但是,如果您要应用任何自己的样式,则需要注意一些怪癖,如此处的 Blackberry 开发人员支持论坛中所述。下面的示例应该可以使用,使用默认样式将链接着色为蓝色,并带有粗体和下划线:

Label {
    text: "<html>Click here to open browser and get redirected to <a href='http://www.stackoverflow.com'>www.stackoverflow.com</a></html>"
}

注意:您可能需要设置才能查看所有文本,具体取决于您的布局multiline: trueLabel

于 2013-02-04T23:28:48.607 回答
1

您应该将 Text.RichText 值分配给标签的“textFormat”属性:

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)
    }
  }
}
于 2013-02-04T10:05:38.547 回答