如何在BB 10级联中加载第二个.qml文件

时间:2013-08-09 07:12:38

标签: c++ qml blackberry-10 blackberry-cascades

我想要的是,对于一个按钮(在 one.qml 中),点击加载一个单独的 .cpp 文件( second .cpp )并在 .cpp 文件中,调用 second.qml 文件。如何使用 BB10 C ++ 编码完成此操作。但不使用 QML 编码。我用QML编码做了但不是我想要的。

如果我与Android开发进行比较,我们从一个Activity调用第二个Activity,它有一个单独的.xml文件。这就是我想在BB10中测试的确切内容。

1 个答案:

答案 0 :(得分:2)

要从C ++加载新的QML文档,您必须使用类似的东西:

bb::cascades::QmlDocument *qml = bb::cascades::QmlDocument::create("asset:///yourSecondFile.qml");
// You can define properties for your page
qml->setContextProperty("_propertyName", yourObject);
bb::cascades::Page *secondPage = qml->createRootObject();

有关您可以对文档执行的操作的完整说明,请参阅QmlDocument文档。

所以,现在,您拥有Page(或任何其他组件)。例如,您需要在NavigationPane上推送它。你可以这样做:

// Create a back button
bb::cascades::ActionItem* backAction = bb::cascades::ActionItem::create()
    .title(tr("Previous page"))
    .imageSource(QUrl("asset:///back.png"))
    .onTriggered(navigationPane, SLOT(pop())
);

// Push the page
navigationPane->push(page
    .paneProperties(bb::cascades::NavigationPaneProperties::create()
        .backButton(backAction)
    )
);