2013-08-31 48 views
1

我对C++和QML相当陌生,所以试图按自己的方式教自己!我正在尝试更改QML Header对象的“title”属性。我目前正在开发我的应用程序,离开GitHub上的pushCollector级联示例。BB10 - 从C++更改QML标题标题

我已经在其他地方看过,我可以分配一个属性别名,并且这样做;

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 
    } 

谢谢!

回答

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: "" 
} 

经过测试,它的工作原理

+0

超级!谢谢,工作我想要的! –