Отображение нескольких классов в одном окне QML
Условно говоря, есть окно, в котором находится Rectangle и кнопка по нажатию которой Loader загружает AnotherClass.qml в Rectangle. Это работает, как и хотелось, но когда по нажатию уже другой кнопки, из AnotherClass.qml, появляется открывается два окна с MainMenu.qml.
MainMenu.qml:
Window {
id: window
visible: true
width: 640
height: 480
title: "MainMenu.qml"
Rectangle {
id: rect
anchors.fill: window
Button {
id: calcButton
height: 100
anchors.horizontalCenterOffset: 320
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
anchors.topMargin: 220
onClicked: {
pageLoader.source = "AnotherClass.qml"
}
}
Loader { id: pageLoader; sourceComponent: rect}
}
}
AnotherClass.qml
Rectangle {
id: window
visible: true
width: 640
height: 480
Button {
id: calcButton
height: 100
anchors.horizontalCenterOffset: 320
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
anchors.topMargin: 220
onClicked: {
pageLoader.source = "MainMenu.qml"
}
}
Loader { id: pageLoader; sourceComponent: rect}
}
Я решил попробовать реализовать это другим образом, но проблема осталось той же.
Rectangle {
id: window
visible: true
width: 640
height: 480
MainMenu{
id: mm
}
Button {
id: calcButton
height: 100
anchors.horizontalCenterOffset: 320
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
anchors.topMargin: 220
onClicked: {
mm.pageLoader.source = "MainMenu.qml"
}
}
}
Ответы (1 шт):
Автор решения: eri
→ Ссылка
MainMenu это окно, которое вы вставляете в другое - вот оно и появляется как новое. А в первом случае рисуете квадрат поверх содержимого.
