• 2744阅读
  • 2回复

c++ 与 qml 交互 [复制链接]

上一主题 下一主题
离线neeme
 

只看楼主 倒序阅读 楼主  发表于: 2018-02-10
大家好:
    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 呢? 谢谢!  


开发平台:Ubuntu 16.04 64bit + Qt 5.9.4
运行平台:Ubuntu 16.04 64bit
离线never_forget

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


离线neeme

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

在下水平低,按兄的意思搞了一下,没通过,可能是我理解错误
兄可否用代码详细说明一下呢, 谢谢!
开发平台:Ubuntu 16.04 64bit + Qt 5.9.4
运行平台:Ubuntu 16.04 64bit
快速回复
限100 字节
 
上一个 下一个