BB10 - 从C ++更改QML标题标题

时间:2013-08-31 15:46:09

标签: c++ qml blackberry-10

我对C ++和QML很陌生,所以有点像自己一样教我自己!我试图更改QML标头对象的“标题”属性。我目前正在GitHub上的pushCollector级联示例中开发我的应用程序。

我在其他地方读过我可以分配属性别名并按照这种方式执行;

NavigationPane {
id: navPane
property alias connectionText:connectionStatus.title
Page {
    Container {

        Header {
            id: connectionStatus
            title: "Connection Status:"
            verticalAlignment: VerticalAlignment.Bottom
            bottomMargin: 0.0
            topMargin: 0.0
            visible: true
            subtitle: ""            
        }

我的问题是,如何在我调用函数时创建一个可以动态更改标题的void函数。我需要类似的东西;

void App:changeConnectionText(const QString new Text)

    {
        //change object title in QML
    }

谢谢!

1 个答案:

答案 0 :(得分:2)

在.cpp

中添加
#include <bb/cascades/Header>

您可以这样访问:

void ApplicationUI::changeConnectionText(QString Text) {

    Header* myheader = Application::instance()->scene()->findChild<Header*>("connectionStatus");
    myheader->setTitle(Text);
}

你这样称呼(在cpp中):

changeConnectionText("Yay, connected!");

和QML

Header {
    id: connectionStatus
    objectName: "connectionStatus" //add this!!!
    title: "Connection Status:"
    verticalAlignment: VerticalAlignment.Bottom
    bottomMargin: 0.0
    topMargin: 0.0
    visible: true
    subtitle: ""
}

经测试,它有效