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 呢? 谢谢!



  • @neeme 你好,新年快乐。

    方法1:什么时候使用,什么时候直接调用engine.rootContext()->setContextProperty("MAC", m1); // m2
    方法2: C++环境可以使用两个变量吗? engine.rootContext()->setContextProperty("MAC_1", m1);


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.