QML文本中实现网页超链接

最近因为项目需要开始学习QML,大概学习了一周左右了,有些东西在网上查的时候发现资源非常少,不知道是不是我搜索的不对还是其他原因,最近遇到的两个问题,觉得应该拿来和大家分享一下,如果有不对的地方,请大家指正,互相学习!!

一:QML文本中实现网页超链接

在网上看到一篇诺基亚内部QML培训的资料,上面写到在文本中可以实现超链接,给出的HTML的格式如下:

"<html><b>Qt Quick</b></html>“,当我将该代码粘贴到如图1所示的代码中,并用http://www.baidu.com网址替换掉Qt Quick后,运行该程序,发现效果如图2所示。

Rectangle {
    width: 200
    height: 200
    color: "lightblue"
    Text {
        anchors.centerIn: parent
        text: "<html><b>http://www.baidu.com</b></html>"
    }
}
图1

图2
发现该网址只是以字符串的形式显示在了文本框上,并不是想要的超链接,经过两个小时的调查,终于在一个网站上提出的问题中找到了解决办法,原来是格式有问题,将以上代码中超链接部分改动一下即可,改完后的代码如图3所示,效果如图4所示:
Rectangle {
    width: 200
    height: 200
    color: "lightblue"
    Text {
        anchors.centerIn: parent
        text: '<html></style><a href="http://baidu.com">baidu</a></html>'
 
 
    }
}
 
 
图3
图4
从图4中可以看到,该百度网址已经是以超链接的方式显示出来了,但是点击”baidu“后发现没有反应,应该怎么解决呢?原来是缺少了一句激活链接的语句,将该语句添加好的代码如图5所示:
Rectangle {
    width: 200
    height: 200
    color: "lightblue"
    Text {
        anchors.centerIn: parent
        text: '<html></style><a href="http://baidu.com">baidu</a></html>'
        onLinkActivated: Qt.openUrlExternally(link)
    }
}
图5
这时候重新运行程序,在出现的图4中点击”baidu“字样,就可以实现跳转到百度界面的超链接功能了!


















评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值