QML: как показать диалог после открытия окна? - PullRequest
0 голосов
/ 24 января 2020

Мне нужно показать пользователю модальное диалоговое окно, прежде чем он или она начнет работать с приложением. Пример приложения с диалоговым окном:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.3

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button {
        text: "Show dialog"
        onClicked: profileDialog.open()
    }

    Dialog {
        id: profileDialog
        title: "Select profile"
        ColumnLayout {
            RadioButton {
                checked: true
                text: qsTr("First")
            }
            RadioButton {
                text: qsTr("Second")
            }
            RadioButton {
                text: qsTr("Third")
            }
        }
        standardButtons: StandardButton.Ok
    }

}

Этот пример показывает диалог по нажатию кнопки. Но мне нужно сделать это при запуске приложения. Как показать profileDialog при открытии главного окна? Может быть, есть какой-то сигнал после шоу? Но я не могу найти такой сигнал в документации.

1 Ответ

2 голосов
/ 24 января 2020

В этих случаях следует использовать сигнал Component.onCompleted:

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    // ...
    <b>Component.onCompleted: profileDialog.open()</b>
}
...