Wie wird nach dem Start der App ein Popup-Dialog angezeigt?

Wie wird nach dem Start der App ein Popup-Dialog angezeigt?

Wenn ich den PopupUtils.open()Befehl in der Component.onCompletedEigenschaft 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)
             }
         }
    }

verwandte Informationen