Wenn ich den PopupUtils.open()
Befehl in der Component.onCompleted
Eigenschaft eines beliebigen Elements verwende, passiert nichts, Beispiel:
Rectangle {
id: rect
height: 600
width: height
Component.onCompleted: {
PopupUtils.open(dialog, rect)
}
Component {
id: dialog
Dialog {
id: dialogue
title: "Save file"
text: "Are you sure that you want to save this file?"
Button {
text: "cancel"
onClicked: PopupUtils.close(dialogue)
}
Button {
text: "overwrite previous version"
color: "orange"
onClicked: PopupUtils.close(dialogue)
}
Button {
text: "save a copy"
color: "orange"
onClicked: PopupUtils.close(dialogue)
}
}
}
wie kann ich direkt nach dem Start der App einen Popup-Dialog richtig anzeigen?
Antwort1
PopupUtils.Open(dialog, id) ist für die Arbeit mit Schaltflächen gedacht.
Fügen Sie daher eine Schaltfläche mit der sichtbaren Eigenschaft „false“ hinzu und übergeben Sie die ID dieser ausgeblendeten Schaltfläche anstelle der obigen „ID“ (natürlich ohne Anführungszeichen).
Quelle:
Hatte das gleiche Problem :)
Antwort2
Aus irgendeinem Grund funktioniert es mit einem Timer
, also:
Rectangle {
id: rect
height: 600
width: height
Component.onCompleted: {
start_timer.start()
}
Timer {
id: start_timer
interval: 200;
onTriggered: PopupUtils.open(dialog, rect)
}
Component {
id: dialog
Dialog {
id: dialogue
title: "Save file"
text: "Are you sure that you want to save this file?"
Button {
text: "cancel"
onClicked: PopupUtils.close(dialogue)
}
Button {
text: "overwrite previous version"
color: "orange"
onClicked: PopupUtils.close(dialogue)
}
Button {
text: "save a copy"
color: "orange"
onClicked: PopupUtils.close(dialogue)
}
}
}