0
私はこのようなオブジェクトをQMLのオブジェクトを削除して再作成しようとしています削除する方法:オブジェクトを生成し、それを削除するstop
を呼び出すためにQMLオブジェクト
Rectangle{
property var obj
signal videoStopped(variant complete)
function recreate(url){
if(!obj){
console.log("createObject")
obj = videoComponet.createObject(root)
obj.stopped.connect(function(){
videoStopped(obj.status == MediaPlayer.EndOfMedia)
})
}
obj.source = url
obj.play()
}
function stop(){
obj.destroy() // obj.deleteLater()
}
Component{
id: videoComponet
Video {
anchors.fill: parent
visible: true
autoPlay: true; autoLoad: true
}
}
}
C++側のコールrecreate
を。
recreate
⇒コンソール出力のCreateObject↓
stop
↓
recreate
⇒コンソールなし出力
obj.destroy()
とobj.deleteLater()
はどちらも処理されません。 C++でdeleteのように、動的に作成されたオブジェクトを強制的に削除する方法。
あなたが破壊呼び出した後にnullにOBJを設定しようとしましたか?私はnull値の初期値も与えますvar obj:null –
Creatorは 'obj'の値をチェックできるQMLデバッガを持っています。 – Mitch
'Component.onDestruction:console.log( 'destroy')'を 'Component'の' Video'-Itemに、 'console.log(obj)'を 'function 'の第1行として追加してください再作成する(url) '。さらに、チェーンのどこかでこの信号を使用している場合は 'onVideoStopped:console.log(complete)' – derM