C++与QML交互时有个问题,可能缺少一步什么操作,求大神指点。

我的需求:程序运行后,qml能自动收到C++中的list数据,而不需通过点击鼠标等手动操作。搞了半天还是不会,所以出来请教大神。我的做法:1.C++构造函数中,初始化了Q... 我的需求:
程序运行后,qml能自动收到C++中的list数据,而不需通过点击鼠标等手动操作。搞了半天还是不会,所以出来请教大神。
我的做法:
1.C++构造函数中,初始化了QList<QString> list,然后发送数据emit sendList(list);
qml中onSendList也定义好了,但接收不到list数据。
2.如果定义延时函数发送该信号,或者在qml中调用发送该信号的函数,则能收到数据。
猜想:
可能是时机问题,程序先调用C++构造函数中的emit,但此时onSendList还没初始化,于是收不到信号。
这个问题主要就是想知道qml有没默认执行的操作,刚知道了,所以也解决了。qml中添加,会默认执行,具体不是很明白,大神可以讲讲。
Component.onCompleted: {
dataObject.funcSendList()
}
展开
 我来答
匿名用户
2017-09-21
展开全部
详细一点拍嫌宽想要怎么交互.你可以用qmlRegisterType在QML启动之前(main.cpp中)把C++的类注册成为一个QML类型,在C++里袭亮面定义好你的属性信号方法之类的,在QML页面上调用这些东西就者轿可以.或者你可以在main.cpp中定义上下文 mlContext*conte
追问
追问一个问题,如何给动态添加的对象添加鼠标事件?

var component = Qt.createComponent("Button.qml");
if (component.status == Component.Ready)
component.createObject(parent, {"x": 100, "y": 100});

MouseArea不知如何写
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式