Корректное создание дополнительного окна в qml

Изучаю qml, и возник вопрос как корректно создавать дополнительных окна, в которых я планирую размещать некоторую информацию в виде графиков. Сейчас для этого я создал файл PlotsWindow.qml, который описывает это окно:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls.Material 2.12

Window {
    signal winClosing()
    property alias winChartViewer: winChartViewer

    width: mainWidth - 100
    height: mainHeight - 100
    visible: false
    color: "black"

    ChartView {
        id: winChartViewer
        anchors.fill: parent
    }

    onClosing: winClosing()
}

ChartView - также файл, где описан элемент самого графика с осями и сериями.

Элемент PlotsWindow я поместил внутрь Loader'а в главном окне ApplicationWindow:

Loader {
    id: plotViewer1
    onStatusChanged: console.log("first obj status", status, "item", item)
    source: "PlotsWindow.qml"
    active: false

    onLoaded: {
        item.winClosing.connect(whenWinClosing)
        UIPlotWin.setSeriesAxis(0, item.winChartViewer.lineSeries,
                                item.winChartViewer.axisX, item.winChartViewer.axisY)
    }
    Component.onDestruction: {
                if (item) {
                    item.winClosing.disconnect(whenWinClosing);
                    console.log("signal was disconnected");
                }
    }

    function whenWinClosing() {
        plotViewer1.active = false;
        playerPanel.checkBox1.checked = false;
        UIPlotWin.testPlotFormingStop();
        UIPlotWin.deleteSeriesAxis(0);
        console.log("Win1 has been closed");
    }

}

И вот у меня ощущение, что я делаю это все по-корявому, ибо:
1) Новое окно всегда находится поверх главного;
2) При закрытие основного окна, когда дополнительное окно открыто, последнее не закрывается и также не реагирует на нажатия;
3) Слишком много телодвижений просто для создания доп. окна (по сравнению с qt widgets).


Ответы (0 шт):