当一个QObject派生的对象被破坏时,可以从其析构函数发出一个信号吗?我尝试了它,它似乎工作,但我不知道是否应该完成。可以在Qt中从对象的析构函数发出信号吗?
例如,该代码
class MyClass : public QObject {
signals:
void mySignal(const QString &str);
public:
QString myString;
~MyClass() { emit mySignal(myString); }
}
将通过一个常量引用的对象被执行的连接槽时,可能是超出范围由时间。
但我认为sender()方法可能会给一个无效的指针?无论如何,我认为在编写插槽时我应该小心并记住这一点。 – sashoalm
是的,当然。如果你有一个排队的连接,如果信号在dtor发出,你不能使用sender()。信号的接收器必须知道这一点。 –