qml与HTML数据交互,基于QtQuick的C++,qml,Html三者的Bridge交互

基于QtQuick的C++,qml,Html三者的Bridge交互

68190ee3b702b82f2df9b154a39585db.png

主要功能

自定义C++对象并注册到QML

可以在QML中继续扩展C++对象的属性和方法 信号等

将C++对象注入到WebChannel

Html中引入C++对象

JavaScript与C++直接交互

示例代码说明

main.cpp:

//该实例必须直接继承自Object的 QWidget的忽略

qmlRegisterType("DDuiObejct",1,0,"DDQmlObejct");

qml:

//需要将这个对象注册到channel里面

DDQmlObejct{

id: myObject

// the identifier under which this object

// will be known on the JavaScript side

// signals, methods and properties are

// accessible to JavaScript code

WebChannel.id: "DDCore" //这个id可在 html 中使用

//qml中继续扩展信号

signal someSignal(string message);

//监听C++的信号

onSignalSendToQml: {

messageId.append(message);

}

//自定义函数

function someMethod(message) {

console.log(message);

someSignal(message);

slotShowMessage(message)

return "someMethod:"+message;

}

//扩展的函数 可以定义很多函数

function getThisFilePath(filepath){

var d = getFileContents(filepath);

someMethod(d);

return d

}

//扩展属性

property string hello: "world"

}

===========以下为webengineview的实例和WebChannel的实例===============

//需要注册一个WebChannel对象

WebChannel{

id:changedId

registeredObjects:[myObject]//可以将多个对象注册到这里

}

//主web界面

WebEngineView {

id:webview

anchors.left: parent.left

anchors.top: parent.top

width: parent.width/2

anchors.bottom: parent.bottom

url: "qrc:/chatRecord.html"

webChannel:changedId//指定该对象的沟通桥梁WebChannel

}

有问题反馈

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

邮件(373955953@qq.com)

QQ: 373955953

QQ群:312125701

github: @寒山-居士

关于作者

var duoduozhijiao = {

nickName : "寒山-居士",

site : "http://www.heilqt.com",

blog : "http://blog.heilqt.com"

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值