2

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

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

4

1 回答 1

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)
    )
);
于 2013-08-09T08:01:38.503 回答