2013-08-31 54 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

超級!謝謝,工作我想要的! –