Qtは、サイドの1つが削除されると、オブジェクト間の接続を自動的に削除しますか?
例:connect (A .. , B ..)
、A(ポインタ)が削除された場合、またはBが削除された場合、接続は切断されますか?
デストラクタで明示的に切断を使用する必要がありますか?
はい、 _QObject::~QObject
_ デストラクタが処理します。
オブジェクトとの間のすべての信号は自動的に切断され、オブジェクトの保留中のポストされたイベントはイベントキューから削除されます。
ただし、QObjectサブクラスを直接削除するよりも、deleteLater()
を使用する方が安全な場合がよくあります。
ただし、注意してください。
警告:保留中のイベントが配信されるのを待っている間にQObjectを削除すると、クラッシュする可能性があります。 QObjectが現在実行中のスレッドとは別のスレッドに存在する場合は、直接削除しないでください。代わりにdeleteLater()を使用してください。これにより、保留中のすべてのイベントがオブジェクトに配信された後で、イベントループがオブジェクトを削除します。