このコードを使用してツリーからアイテムを削除すると、アイテムは削除されますが、デリゲートは実行され続けます。
# I do this from inside an item that has a reference to its tree-owner....
index = self.tree.indexFromItem(self)
self.tree.model().removeRow(index.row(), index.parent())
アイテムのペイントを適切に放棄するためにいじらなければならない参照はありますか?
ツリーをクリアして再構築すると問題なく動作しますが、これをもっと直接的にしようとしています。
いくつかの詳細.... 私の GUI は 3D アプリケーション用です。ツリー アイテムは、3D アプリの API のノードにアクセスします。3D アプリケーションのノードが削除されたときにアイテムを削除しています (ツリーをシーンに同期しようとしています)。アイテムがツリーから正常に削除されたことがわかりますが、3D アプリ ノードへの参照が正しくないため、エラーが発生します。周りをクリックすると、エラーが何度も繰り返されます。毎回失敗しているのか、それとも最初のエラーが GUI を壊して、クリーンアップを中断したかのように繰り返しエラーを引き起こしているのかはわかりません。
アイテムのすべてのメンバー/属性を None に設定しようとしましたが、それが実際に参照を強制終了するかどうか、またはガベージ コレクターがその仕事をいつ行うかなどはわかりません。