我有一個從QObject繼承的類,它覆蓋了eventFilter()方法。它看起來像這樣:破壞從QObject繼承的類的對象
struct A
{
void DoSomething()
{
}
};
struct B : public QObject
{
Q_OBJECT
B(QObject *parent, A &a_)) : QObject(parent), a(a_)
{
}
bool eventFilter(QObject * watched, QEvent * event)
{
if (QEvent::FocusOut == event->type())
{
a.DoSomething();
return true;
}
return QObject::eventFilter(watched, event);
}
A &a;
};
這只是簡單的例子。現在在我的代碼中,類型A的對象(被傳遞給類型B的對象的構造函數)在qt開始銷燬繼承自QObject的對象之前被銷燬。
有沒有辦法告訴qt釋放類型B的對象?我不能簡單地刪除它,因爲qt會嘗試使用它並稍後釋放它。
這個接縫工作。謝謝 – 2011-03-09 06:07:34