Как прикрепить страницу или панель навигации в TabbedPane, определенные в разных файлах qml?

Я определил TabbedPane, как показано ниже, но по одной на каждой вкладке, я хотел бы показать содержимое "questions.qml" (это панель навигации) и файл "stats.qml" вместо встраивания кода в один файл. Поэтому мне было интересно как я могу этого добиться?

TabbedPane {
    showTabsOnActionBar: true
    Tab {
        id: questions
        title: "Questions"
        description: "This tab will have questions in current hub"
    }
    Tab {
        id: stats
        title: "Stats"
    }
}

person itsaboutcode    schedule 23.01.2013    source источник


Ответы (1)


Что я сделал в этом случае, так это объявить каждую вкладку в файле QML, чтобы настроить TabbedPane, как у вас:

import "UI" // The file DataManagement.qml is located in the directory UI
            // which is a sub-directory of the location of this QML file.
...
Tab {
    title: qsTr("Data Management")
    imageSource: "asset:///images/icons/database.png"
    id: dataManagement
    DataManagement {
        id: dataManagementPage
    }
}
...

Затем в отдельном файле QML, в данном случае DataManagement.qml, я объявляю содержимое вкладки:

import bb.cascades 1.0

Page {
    // content of page to render in the tab.
    content: Container {
         ...
    }
}

Пока файлы QML находятся в одной и той же папке или указанный файл (DataManagement.qml) находится в папке, включенной в первый файл QML, он работает.

person Richard    schedule 23.01.2013
comment
Спасибо. Это работает. Но если файл находится в каком-то другом каталоге? Что делать в таком случае? - person itsaboutcode; 23.01.2013
comment
Это тоже легко. Я поместил QML-файлы пользовательского интерфейса в каталог assets/UI. Поэтому я просто включаю пользовательский интерфейс импорта строк в файл main.qml, я отредактировал его в ответе. - person Richard; 23.01.2013
comment
Спасибо, Ричард. Это действительно полезно. - person itsaboutcode; 23.01.2013
comment
Большое спасибо! И вы должны назвать страницы с большой буквы в начале Home.qml будет работать home.qml нет! - person user2086904; 15.07.2013