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

How to load a second .qml file in BB 10 cascade

本文关键字:加载 第二个 qml 文件 级联 BB      更新时间:2023-10-16

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

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

要从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)
    )
);