我有C++类发出信号和QML插槽。程序返回事件循环后,我需要在同一线程中执行插槽。
我怎样才能实现这样的目标?
Connections {
target: box2dCppEngine
onBulletCollided: box2dCppEngine.deleteObject(bullet)
connectionType: Qt.QueuedConnection
}
我需要这个,因为我无法执行deleteObject,而在处理冲突时,我需要在世界一步之后执行此操作。
最佳答案
我不知道QML有多少,但是我可以提供另一种方法:
看看QObject::deleteLater()
由于是插槽,因此您可以将信号直接连接到bullet.deleteLater()
,也可以在deleteLater
插槽中调用deleteObject
。