Только начал изучать библиотеку. Обнаружил, что QWidget перегружает setParent() с новой сигнатурой. Протестировал следующий код:
QObject* pParent = new QObject();
QWidget* pSender = new QWidget();
static_cast<QObject*>(pSender)->setParent(pParent);
поймал ассерт: "ASSERT: '!d->isWidget' in file kernel\qobject.cpp"
Выходит, задумано так, что произвольный объект не может отвечать за время жизни виджета.
Зачем? Или это просто баг?