我在B级有一个插槽,它将连接到A级信号,但是B级将被不同地解构,所以在B级解构时,我应该断开插槽还是通过QT断开连接?如果我应该手动断开连接,我该怎么办?
答案 0 :(得分:0)
您可以捕获信号void QObject::destroyed(QObject * obj = 0)进行清理:
此信号在对象
obj
之前发出 被毁坏了,无法阻挡。此信号后,所有物体的儿童都会立即被摧毁 被发射出来。
回答:
我应该断开插槽还是通过QT断开连接?如果我 应手动断开连接,我该怎么办?
当涉及的任何一个对象被破坏时,信号槽连接被删除。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果你没有使用线程,你可以在这里断开另一个类槽,如下面的代码: 您将在A类的构造函数内调用,而不是在构造函数
之外bttnShutdown = new QPushButton(this);
bttnShutdown->setGeometry(290, 2, 25, 26);
myWorker =new B;
connect(bttnShutdown, SIGNAL(clicked()), myWorker, SLOT(dowork()));