2
  1. 私のアプリケーションでは、ナビゲーション ペインを使用しています。QMLごとに個別のファイルを作成したい これが私のファイルだとしましょう

アプリケーションui.cpp

    // initial load    
    // Create scene document from main.qml asset, the parent is set
    // to ensure the document gets destroyed properly at shut down.
    QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);

    // Create root object for the UI
    AbstractPane *root = qml->createRootObject<AbstractPane>();

    // Set created root object as the application scene
    app->setScene(root);

2.ここでは、このようなmain.qmlをロードしています

import bb.cascades 1.0

NavigationPane {
    id: navigationPane

    Page {
        titleBar: TitleBar {
            // Localized text with the dynamic translation and locale updates support
            title: qsTr("Page 1") + Retranslate.onLocaleOrLanguageChanged
        }

        Container {
        }

        actions: ActionItem {
            title: qsTr("Second page") + Retranslate.onLocaleOrLanguageChanged
            ActionBar.placement: ActionBarPlacement.OnBar

            onTriggered: {
                // A second Page is created and pushed when this action is triggered.
                navigationPane.push(secondPageDefinition.createObject());
            }
        }
    }

    attachedObjects: [
        // Definition of the second Page, used to dynamically create the Page above.
        ComponentDefinition {
            id: secondPageDefinition
            source: "DetailsPage.qml"
        }
    ]

    onPopTransitionEnded: {
        // Destroy the popped Page once the back transition has ended.
        page.destroy();
    }
}

3.そして、このファイルでは、次のような「DetailsPage.qml ファイルを呼び出しています

import bb.cascades 1.0

Page {
    titleBar: TitleBar {
        // Localized text with the dynamic translation and locale updates support
        title: qsTr("Second Page") + Retranslate.onLocaleOrLanguageChanged
    }
    Container {
    Label {
        id: msgLabel
        objectName: "msgLabel"
    }   
    }
}

ステップ 1: DetailsPage.qml 用に個別の .cpp および .hh ファイルを作成する方法

ステップ 2: .cpp と .hh でネットワーク操作を行い、QML で設計しているため、これが必要です。

ステップ 3: ここで私が混乱している主な理由は、QML からナビゲートした場合、完全な制御が QML で行われ、その逆であることです。スタックでは、最初に qml はその c++ ファイルを認識できますが、スタックが増加した場合、どのようにそれを行うべきかを確認できます。

-------私の問題を理解していない場合はお知らせください----------------


4

2 に答える 2

0

以下を使用して、.qml ファイルから applicationui.cpp の call 関数を使用できます。

qml->setContextProperty("_app", this);

別のファイル .cpp を使用する場合は、次を使用できます。

DetailPage detailPage = new DetailPage();

qml->setContextProperty("_detail", detailPage);

.qml ファイルでは、.cpp から関数を呼び出すことができます。_app.nameFunction() or _detail.nameFunction()

于 2013-08-19T07:47:08.323 に答える
0
  1. クエリの github サンプルからサンプル アプリを入手してください。

    https://github.com/svmrajesh/BB-10-Cascades/tree/master/MY%20APPS/stackNavigation

  2. 解決策を得るには、次の投稿を参照してください

    このコントロールとは何か、BB 10 カスケードでナビゲーションに使用する方法

于 2013-09-04T12:42:56.407 に答える