によって動的に作成されたポップアップを破棄しようとするプログラムをデバッグすると、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()
ときどき例外が発生します。
ポップアップを安全に破棄するにはどうすればよいですか?