0

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

4

1 回答 1

0

好吧,我改变了我的班级并添加了两个功能

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

实施:首次运行:

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

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

app->setScene(root);

正常运行:

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;希望它会有所帮助

于 2012-11-21T20:26:06.170 回答