0

私のアプリケーションでは、「最初の実行フロー」を実装する必要があるため、この場合、私の QML シーンは異なります。このフローの最後に、通常のフローを実行する必要があるため、ルート オブジェクトのコンテンツを変更する必要があります。これを達成する方法がわかりません。

4

1 に答える 1

0

クラスを変更して2つの関数を追加しました

   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_INVOKEBALEMAKROを使用したためです。それが役立つことを願っています

于 2012-11-21T20:26:06.170 に答える