Можно ли использовать синглтон QML в качестве элемента заголовка на странице QML? - PullRequest
0 голосов
/ 02 марта 2020

У меня есть 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?

Возможен ли в этом случае синглтонный подход? дело?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...