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