查看完整版本: [-- c++ 与 qml 交互 --]

QTCN开发网 -> Qt QML开发 -> c++ 与 qml 交互 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

neeme 2018-02-10 08:17

c++ 与 qml 交互

大家好:
    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 呢? 谢谢!  



never_forget 2018-02-10 09:22
你用一个QList<Mac> 对象存储 m1 和 m2 ,然后放到一个类作为成员变量,注册这个助手类,然后通过类变量访问列表,改变 index ,这样是可以的~



neeme 2018-02-10 09:58
never_forget:你用一个QList<Mac> 对象存储 m1 和 m2 ,然后放到一个类作为成员变量,注册这个助手类,然后通过类变量访问列表,改变 index ,这样是可以的~
 (2018-02-10 09:22) 

在下水平低,按兄的意思搞了一下,没通过,可能是我理解错误
兄可否用代码详细说明一下呢, 谢谢!


查看完整版本: [-- c++ 与 qml 交互 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled