Как отобразить всплывающее диалоговое окно после запуска приложения?

Как отобразить всплывающее диалоговое окно после запуска приложения?

Если я использую PopupUtils.open()команду в Component.onCompletedсвойстве любого элемента, она ничего не делает, например:

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)
             }
         }
    }

как правильно отобразить всплывающее диалоговое окно сразу после запуска приложения?

решение1

PopupUtils.Open(dialog, id) предназначен для работы с кнопками.

Поэтому добавьте кнопку со свойством visible, равным false, и передайте идентификатор этой скрытой кнопки вместо «id» выше (разумеется, без кавычек).

Источник:

Была та же проблема :)

решение2

По какой-то причине это работает с использованием Timer, то есть:

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)
             }
         }
    }

Связанный контент