使标签/文本自动识别QtQuick / QML中的链接?

问题描述 投票:0回答:1

我想自动将链接(例如https://xmpp.org/)放入可点击的Text元素的文本中,这样就可以在浏览器中打开链接(无需手动复制链接)。

我无法添加,例如<a href="https://xmpp.org/"></a>在我的代码中手动,因为输入直接来自用户。

在QtQuick / QML中,Qt有一个简单的解决方案吗?

c++ qt hyperlink qml
1个回答
2
投票

你可以使用类似的东西(正则表达式来自这个answer);

Text {
   property string text2: "http://www.google.com"
   text: isValidURL(text2) ? ("<a href='"+text2+"'>"+text2+"</a>") : text2
   onLinkActivated:{
       if (isValidURL(text2)){
          Qt.openUrlExternally(text2)
       }
   }
   function isValidURL(str) {
      var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
      return regexp.test(str);
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.