Нужно перехватить собьІтие (или отнаследоваться и получить его в
QWidget::changeEvent()):
QEvent::WindowStateChangevoid MyWidget::changeEvent( QEvent * e )
{
if ( e->type() == QEvent::WindowStateChange )
{
QWindowStateChangeEvent * ce = static_cast<QWidgetStateChangeEvent*>( e );
if ( (windowState() & Qt::WindowMinimized) && !(e->oldState() & Qt::WindowMinimized) )
// someone minimize us right now
hide();
}
}