2013-08-19 2 views
2
  1. В моем приложении я использую навигационную панель. и я хочу, чтобы сделать отдельные файлы для каждого QML Пусть Предположим, это мой файл

applicationui.cppотдельный .cpp файл для каждого qml в blackberry 10

// initial load  
    // Create scene document from main.qml asset, the parent is set 
    // to ensure the document gets destroyed properly at shut down. 
    QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this); 

    // Create root object for the UI 
    AbstractPane *root = qml->createRootObject<AbstractPane>(); 

    // Set created root object as the application scene 
    app->setScene(root); 

2.Here я загрузки main.qml который аналогичен этому

import bb.cascades 1.0 

NavigationPane { 
    id: navigationPane 

    Page { 
     titleBar: TitleBar { 
      // Localized text with the dynamic translation and locale updates support 
      title: qsTr("Page 1") + Retranslate.onLocaleOrLanguageChanged 
     } 

     Container { 
     } 

     actions: ActionItem { 
      title: qsTr("Second page") + Retranslate.onLocaleOrLanguageChanged 
      ActionBar.placement: ActionBarPlacement.OnBar 

      onTriggered: { 
       // A second Page is created and pushed when this action is triggered. 
       navigationPane.push(secondPageDefinition.createObject()); 
      } 
     } 
    } 

    attachedObjects: [ 
     // Definition of the second Page, used to dynamically create the Page above. 
     ComponentDefinition { 
      id: secondPageDefinition 
      source: "DetailsPage.qml" 
     } 
    ] 

    onPopTransitionEnded: { 
     // Destroy the popped Page once the back transition has ended. 
     page.destroy(); 
    } 
} 

3.And в этом файле я звоню "DetailsPage.qml" файл, который выглядит следующим образом

import bb.cascades 1.0 

Page { 
    titleBar: TitleBar { 
     // Localized text with the dynamic translation and locale updates support 
     title: qsTr("Second Page") + Retranslate.onLocaleOrLanguageChanged 
    } 
    Container { 
    Label { 
     id: msgLabel 
     objectName: "msgLabel" 
    } 
    } 
} 

шаг 1: как создать отдельный .cpp и .hh файл DetailsPage .qml

Шаг 2: Я хочу этого, потому что делаю сетевые операции в .cpp и .hh и проектировании в QML.

Шаг 3: Основная причина, по которой я запутался, если я перехожу от QML, тогда общий контроль с QML и наоборот. В стек первый qml может распознать свой файл C++, но если стек увеличивается, то как мы должны это делать.

------- Пожалуйста, дайте мне знать, если вы не понимаете мою проблему ----------------


+0

Получите ответ по этой ссылке http://stackoverflow.com/questions/18547550/what-is-this-control -and-how-to-use-it-in-bb-10-cascades-for-navigation/18588282 # 18588282 – svmrajesh

+0

Вы нашли решение? –

+1

@ZuzooVn Я конвертирую все мои сетевые операции в QML. –

ответ

0

Вы можете использовать вызов функция в applicationui.cpp из .qml файла с помощью:

qml-> setContextProperty ("_ приложение", это);

Если вы хотите, используя другой файл .cpp, вы можете использовать:

DetailPage detailPage = new DetailPage(); 

qml->setContextProperty("_detail", detailPage); 

В .qml файл, вы можете вызвать функцию из .cpp по _app.nameFunction() or _detail.nameFunction()

+0

Нет проблемы. Рассмотрим стек MAINSCREEN.qml << FIRSTPAGE.qml << SECONDPAGE.qml << THIRDPAGE.qml. теперь THIRDPAGE.qml находится наверху, как я могу связать его с THIRDPAGE.cpp –

+0

@kernald, пожалуйста, можете ли вы снова посмотреть мою проблему –

Смежные вопросы