在我的应用程序中,我需要实现“第一次运行流程”,因此在这种情况下,我的QML场景将是不同的。作为这个流程的最后一件事我需要运行正常流程,所以我必须更改根对象内容。 我不知道如何实现这一点。
答案 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; 希望它会有所帮助