标题:c++ 与 qml 交互
作者:neeme
日期:2018-02-10 08:17
内容:
大家好:
CMac * m1 = new CMac;
CMac * m2 = new CMac;
CMac * mac = m1;
QQmlApplicationEngine engine;
engine.rootContext()->setContextProperty("MAC", mac);
这样后,QML环境可以正常与mac指向的m1交换数据 , 但当 c++ 环境改为
mac = m2 后,QML环境的MAC交换的对象还是之前的m1 !估计是
setContextProperty("MAC", mac); QT取用了mac指向的地址,而不是把mac当作一个指针!!!
那么,我应该用什么方法能在QML里的MAC能自由存取 m1, m2 呢? 谢谢!
#1 [never_forget 02-10 09:22]
你用一个QList 对象存储 m1 和 m2 ,然后放到一个类作为成员变量,注册这个助手类,然后通过类变量访问列表,改变 index ,这样是可以的~
#2 回 never_forget 的帖子 [neeme 02-10 09:58]
never_forget:你用一个QList 对象存储 m1 和 m2 ,然后放到一个类作为成员变量,注册这个助手类,然后通过类变量访问列表,改变 index ,这样是可以的~
(2018-02-10 09:22)
在下水平低,按兄的意思搞了一下,没通过,可能是我理解错误
兄可否用代码详细说明一下呢, 谢谢!