Qt 5.2.1 Ayuda con la visualizacion de las ventanas
-
Hola a todos.
soy nuevo con Qt y necesito ayuda con una duda.
Tengo una aplicación con 2 Form. Cuando clico el boton y hago form2.show(); este se puede abrir tantas veces como clicks haga. Quiero que si esta cerrado u oculto solo se pueda abrir (show) una vez.Solucionado.
@if(w_info->isHidden()){
w_info->show();}else{ w_info->hide();
}@
-
Hola
No entendí muy bien qué quieres hacer.
¿Tienes una ventana y quieres comprobar, antes de volver a abrirla, si ya está abierta, y si no lo está, abirla?
¿O quieres que al pulsar, por ejemplo un botón, se abra una nueva ventana y así tener varias abiertas?
Saludos
-
Hola
Entonces la primera ves que pulses el botón tendrás que crear la ventana y las siguientes solo mostrarla.
He probado un ejemplo y parece que funciona.
En el archivo .h defines un puntero a la ventana que vas a abrir, luego en el constructor lo inicializas a NULL.Ahora, cuando se pulse el botón hay que comprobar si está a NULL para crearla o solo mostrarla, algo así:
@ if(dialog == NULL)
dialog = new Dialog(this);dialog->exec();
@
Según he probado, cuando se cierra el diálogo no se destruye, solo se oculta, por lo que el código funciona.
Si quieres que la ventana se destruya cuando se cierra hay que usar el atributo Qt::WA_DeleteOnClose, he probado y funciona, pero plantea un problema y es que aunque se destrueye la ventana, el puntero no vale NULL, por lo que la siguiente vez el if da false y no se crea la ventana, por lo que obtenemos un bonito crash.
Así que para solucionarlo conecté la señal destroyed con un SLOT en el que poner al NULL el puntero y parece que funciona.
Prueba a ver si es lo que quieres y si funciona bien.
Saludos