0

によって動的に作成されたポップアップを破棄しようとするプログラムをデバッグすると、Qt.createComponent(...)例外が発生することがあります。

ここに画像の説明を入力

関連するコードは次のとおりです。

ApplicationWindow {
    id: window
    property var dialog
    ...
    Component.onCompleted: {
        var dialogComponent = Qt.createComponent("qrc:/TestPopup.qml")
        dialog = dialogComponent.createObject(...)
        dialog.closed.connect(function(){ [] })
        dialog.open()
    }

    Timer {
    id: timer
    interval: 3000
    triggeredOnStart: false
    running: false
    onTriggered: dialog.destroy()
}

TestPopup.qml:

Popup {
    id: popup
    modal: true
    ...
    Button {
        text: "close"
        anchors.centerIn: parent
        onClicked: popup.close()
    }
}

[1]の場合dialog.destroy()、例外が発生する可能性が高いです。そして が のとき[1]timer.start()ときどき例外が発生します。

ポップアップを安全に破棄するにはどうすればよいですか?

4

1 に答える 1