来自这里的问题:Qt Signals and Slots object disconnect?如果我首先在 QObject 上调用删除,那么我会像这样调用断开连接函数:
MyQClass* A = new MyQClass();
connect(A,SIGNAL(A_S()),this,SLOT(B_S()));
A->deleteLater();
...
disconnect(A,SIGNAL(A_S()),this,SLOT(B_S()));
这会导致崩溃吗?我发现它会导致 Qt4 崩溃,但不会导致 Qt5 崩溃? 不同的 Qt 版本在做一些不同的事情吗?否则,我的代码可能还有其他问题。
最佳答案
连接在对象销毁时自动断开。崩溃的发生可能是因为您试图在已销毁的对象上调用 disconnect 。您将获得一个悬空指针 A(具有指向不再存在的对象的地址)。但这有点取决于“...”是什么。
关于c++ - Qt中会自动断开连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27165613/