У меня есть StackView
, который отображает несколько страниц типа "TabletPage.qml
":
// TabletPage.qml
import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Window 2.2
import QtQml.Models 2.1
// import TopBar.Singleton 1.0
Page {
id: root
property ObjectModel menuBarModel
signal homePageRequested()
signal backPageRequested()
signal pageRequested(string url)
signal pageRequestedWithProp(string url, var prop)
width: Screen.width
height: Screen.height
background: Rectangle { color: "black" }
header: TopBar {} // Ok but each Page has its own TopBar
// header : TopBarSingleton // -> crash the UI, does not work
footer: HorizontalMenuBar { model: root.menuBarModel }
}
Каждый TabletPage
имеет свой собственный нижний колонтитул (пользовательский компонент QML HorizontalMenuBar
) и заголовок (пользовательский QML TopBar
), но теперь мне нужно сделать заголовок "глобальным": все страницы должны ссылаться на один и тот же экземпляр QML TopBar.qml
. Я пытался сделать TopBar
синглтоном (используя метод qmlRegisterSingletonType
), но как тогда я могу ссылаться на него в заголовке каждого Page
?
Возможен ли в этом случае синглтонный подход? дело?
Спасибо.