當一個QObject派生的對象被破壞時,可以從其析構函數發出一個信號嗎?我嘗試了它,它似乎工作,但我不知道是否應該完成。可以在Qt中從對象的析構函數發出信號嗎?
例如,該代碼
class MyClass : public QObject {
signals:
void mySignal(const QString &str);
public:
QString myString;
~MyClass() { emit mySignal(myString); }
}
將通過一個常量引用的對象被執行的連接槽時,可能是超出範圍由時間。
但我認爲sender()方法可能會給一個無效的指針?無論如何,我認爲在編寫插槽時我應該小心並記住這一點。 – sashoalm
是的,當然。如果你有一個排隊的連接,如果信號在dtor發出,你不能使用sender()。信號的接收器必須知道這一點。 –