Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Chinese
  4. c++ 与 qml 交互

c++ 与 qml 交互

Scheduled Pinned Locked Moved Unsolved Chinese
2 Posts 2 Posters 1.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • neemeN Offline
    neemeN Offline
    neeme
    wrote on last edited by
    #1

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

    joeQJ 1 Reply Last reply
    0
    • neemeN neeme

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

      joeQJ Offline
      joeQJ Offline
      joeQ
      wrote on last edited by
      #2

      @neeme 你好,新年快乐。

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

      Just do it!

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved