2

をメインファイルとして使用し、で他のファイルApplicationWindowに切り替えられるようにしたいです。基本的にはこれを行います:QMLC++QQuickView::setSource(const QUrl & url)

起動 => main.qmlをロード( ApplicationWindow) => ヘルプ ボタンをクリック => help.qmlファイルをロード =>C++など

int main(int argc, char *argv[])
{
    QApplication app{argc, argv};
    CustomQQuickView view;

    view.setSource(QUrl{"qrc:/main.qml"});
    view->show();

    return app.exec();
}

main.qml

ApplicationWindow
{
    visible: true
    width: 640
    height: 480

    Loader
    {
        anchors.fill: parent
        id: mainPageLoader
    }

    Button
    {
        text: "Help"
        onClicked: { mainPageLoader.source = "help.qml"}
    }
}

Loaderここが本当にここに必要かどうか疑問に思っています)

ただしQQuickView、 から派生したルート オブジェクトのロードのみをサポートしますQQuickItem。したがって、 では動作しませんApplicationWindow

QQmlApplicationEngineの代わりに使おうと思っているのですQQuickViewが、使い方が違うようで、このクラスしか装備されていませんQQmlApplicationEngine::load(const QUrl & url)

私の目的にとって最善の行動方針は何ですか?main.qmlファイルApplicationWindowにが本当に必要ですか?

4

1 に答える 1