No estoy seguro si entiendo tu problema, creo que quieres saber si está abierta esa ventana y luego lo representas tu no se donde.. yo hice esto:
@
..
if (wAyuda==NULL){
wAyuda=new WAyuda(0);
wAyuda->show();
connect(wAyuda,SIGNAL(destruirWAyuda()),this,SLOT(destruirWAyuda()));
}else{
wAyuda->activateWindow();
}
..
void WPrincipal::destruirWAyuda(){
delete wAyuda;
wAyuda = NULL;
}
@
wAyuda es un QWidget que tengo separado de mi ventana principal, libero la memoria con delete y le asigno NULL, así que solo tendrías que preguntar si es diferente de NULL, suerte espero que te sirva! Saludos