c++ - Qt中会自动断开连接吗?

标签 c++ qt

来自这里的问题: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/

相关文章:

c++ - 将上三角矩阵转换为完整矩阵 C++

c++ - 将一个 vector 的每个元素与另一个 vector 的元素进行比较

c++ - 实现 QIODevice::writeData,混淆文档

qt - QT Creator不想启动

c++ - 使用msvc 15在Qt5.13中编译CUDA代码

c++ - 如何在 C++ 中合并两个共享相同基类的类?

c++ - 如何将 C++ 代码中定义的单例对象的信号连接到 QML 组件?

c++ - const map & 作为函数参数

c++ - 在代码中使用 Style 自定义 Qt slider 时, handle 偏离凹槽

c++ - Qt类指针之间的区别