Win/Android'de bir Qt uygulaması geliştiriyorum. Benim sorum çok basit.Yükleyicide sayfanın rekreasyonu nasıl önlenir?
Uygulamam başladığında, önce bir giriş sayfası sizi karşılar. Sunucu ayarlarını yapılandırmak isterseniz, bir yükleyicide ServerInfo.qml
açılır. Giriş sayfası ve ServerInfo aynı yükleyiciye yüklenir. Benim sorunum, ServerInfo.qml
kapattığımda, yükleyiciye loginpage.qml
yüklendiğinde, yükleyici loginpage.qml
'un yeni bir örneğini oluşturur. Sayfanın yeniden oluşturulmasını istemiyorum.
ApplicationWindow {
id:mainwindow
visible: true
width: 600
height: 800
x: Screen.width/2 - width/2
y: Screen.height/2 - height/2
menuBar:MenuBar{
Menu {
title:"Edit"
MenuItem {
text:"Sunucu Ayarları"
onTriggered: {
loader.source="ServerConfig.qml"
loader.anchors.centerIn=main
}
}
MenuItem {
text:"Çıkış"
onTriggered: {
Qt.quit();
}
}
}
}
Connections {
ignoreUnknownSignals: true
target: process
onProcessstart: {
busyrec.visible=true;
busyloader.item.busytext=text;
busyloader.item.busyrunnig=true;
}
onProcessstop: {
busyloader.item.busytext=text;
busyloader.item.busyrunnig=false;
busyloader.item.busytextcolor="blue"
}
Component.onCompleted: {
// process.onSuccesLogin();
//TaskResultm.taskresult.Malzemeler.push
console.log(TaskResultm.taskresult.serilaze());
}
}
Column {
anchors.fill: parent
Rectangle {
id:busyrec
width: parent.width
height: (parent.height/10)
visible:true
color:"green"
Loader {
id:busyloader
source:"BusyIndicator.qml"
anchors.fill: parent
}
Connections {
ignoreUnknownSignals: true
}
}
Rectangle {
id: main
// anchors.fill: parent
width: parent.width
height: (parent.height/10)*9
Loader {
id:loader
source: "LoginPage.qml"
anchors.centerIn:parent
focus:true
property bool valid: item !== null
}
Connections {
ignoreUnknownSignals: true
target: loader.valid? loader.item : null
onDirecttomainpage:{
// process.getWorkOrderList();
busyloader.item.switenabled=true;
busyloader.item.switopacity=1;
loader.anchors.fill=main;
loader.source="TaskNavigationMainScreen.qml";
}
onServerinfopageclose: {
loader.source="LoginPage.qml";
loader.anchors.centerIn=main;
}
}
}
}
onClosing: {
if(Qt.platform.os=="android") {
if(loader.item!==null)
{
if(loader.item.objectName==="tasknavigationmain")
if(loader.item.zemin===0)
close.accepted=true;
else
close.accepted=false;
}
}
else if (Qt.platform.os=="windows")
{
Qt.quit();
//if(loader.item!==null)
// if(loader.item.objectName==="tasknavigationmain")
// console.log(loader.item.stackViewItem.depth);
}
}
}
Yine de birden çok yükleyiciniz olabilir. Deyim: daha sonra yüklemek istediğiniz öğe başına bir yükleyici. –
İstediğiniz kadar sahip olabilirsiniz, ancak yine de bir çeşit görünürlük ve sipariş yönetimi uygulamanız gerekecektir. Özellikle kutunun dışında problem için doğru çözüme sahip olduğunuzda, bu amacı yener. – dtech