BB10 - изменить заголовок заголовка QML с C ++

Я новичок в C ++ и QML, так что пытаюсь научить себя этому! Я пытаюсь изменить свойство «title» объекта заголовка QML. В настоящее время я разрабатываю свое приложение на основе примера каскадов pushCollector на GitHub.

Я читал в другом месте, что могу назначить псевдоним свойства и сделать это таким образом;

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
    }

Спасибо!


person Jake Evans    schedule 31.08.2013    source источник


Ответы (1)


Добавьте это в .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: ""
}

Протестировано, работает

person Bojan Kogoj    schedule 31.08.2013