Как можно управлять разными окнами в QML Desktop? Суть такая, что при запуске приложения подготавливаются необходимые ресурсы и это достаточно продолжительно время и есть необходимость показывать некой SplashScreen, после него открывать основное окно с приложением.
На просторах интернета были найдены решения для Android и манифестом.
Так же были найдены решения с ApplicationWindow и Loader`ами, но все равно работает немного не так как надо.
В общем интересует какие есть best practices по управлению окнами в QML для Desktop.
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.5
ApplicationWindow{
id: rootWindow
width: 600
height: 600
visible: true
flags: Qt.Window
Loader {
id: loader
Component {
id: waitWin
Window {
id: waitWindow
width: 300
height: 300
flags: Qt.FramelessWindowHint | Qt.Window
Rectangle {
anchors.fill: parent
color: "red"
}
Text {
anchors.centerIn: parent
text: "WAIT WINDOW"
}
Timer {
interval: 2000
running: true
repeat: false
onTriggered: {
loader.sourceComponent = mainWin
}
}
}
}
Component {
id: mainWin
Window {
id: mainWindow
width: 600
height: 600
flags: Qt.Window
Rectangle {
anchors.fill: parent
color: "green"
}
Text {
anchors.centerIn: parent
text: "WAIT WINDOW"
}
}
}
sourceComponent: waitWin
}
}
Данный код приводит к тому, что существует 2 окна сразу (ApplicationWindow и Window). Или в лоадере надо менять только содержимое окна?