更改/替换级联应用程序的根对象

时间:2012-11-20 20:44:16

标签: blackberry-cascades

在我的应用程序中,我需要实现“第一次运行流程”,因此在这种情况下,我的QML场景将是不同的。作为这个流程的最后一件事我需要运行正常流程,所以我必须更改根对象内容。 我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:0)

好 我改变了我的课程并增加了两个功能

   Q_INVOKABLE void firstRun();
    Q_INVOKABLE void normalRun();

实现: firstrun:

qml->setContextProperty("dateModel" , ModelsFactory::getInstance().weightModel);
qml->setContextProperty("personModel" , ModelsFactory::getInstance().personModel);
qml->setContextProperty("Application", this);

AbstractPane *root = qml->createRootObject<AbstractPane>();

app->setScene(root);

normalRun:

QmlDocument *qml;
        qml = QmlDocument::create("asset:///main.qml").parent(this);
        qml->setContextProperty("Application", this);
        AbstractPane *root = qml->createRootObject<AbstractPane>();
        Application::instance()->setScene(root);

你可以看到我公开了这个对qml的引用 在qml中,当流程结束时,我可以调用Application.normalRun() 我可以这样做因为我在功能声明中使用了Q_INVOKEBALE MAKRO; 希望它会有所帮助