Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Spanish
  4. Qt 5.2.1 Ayuda con la visualizacion de las ventanas
Forum Updated to NodeBB v4.3 + New Features

Qt 5.2.1 Ayuda con la visualizacion de las ventanas

Scheduled Pinned Locked Moved Spanish
6 Posts 3 Posters 3.6k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mrtetzu
    wrote on last edited by
    #1

    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();
    

    }@

    1 Reply Last reply
    0
    • juankiJ Offline
      juankiJ Offline
      juanki
      Moderators
      wrote on last edited by
      #2

      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

      Intenta explicar el problema lo más claro y detallado posible. Adjunta los errores y el código que creas da el error.
      Procura escribir correctamente y sin faltas de ortografía.

      Si la duda se solucionó, por favor, marca el tema como 'solucionado'.

      1 Reply Last reply
      0
      • M Offline
        M Offline
        mrtetzu
        wrote on last edited by
        #3

        Básicamente quiero que al apretar el boton solo se abra una ventana. si esta oculto o cerado se muestre si no no.

        1 Reply Last reply
        0
        • juankiJ Offline
          juankiJ Offline
          juanki
          Moderators
          wrote on last edited by
          #4

          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

          Intenta explicar el problema lo más claro y detallado posible. Adjunta los errores y el código que creas da el error.
          Procura escribir correctamente y sin faltas de ortografía.

          Si la duda se solucionó, por favor, marca el tema como 'solucionado'.

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mrtetzu
            wrote on last edited by
            #5

            Hola. Gracias por tu ayuda. Al fina he podido solucionarlo.

            1 Reply Last reply
            0
            • T Offline
              T Offline
              topocc
              wrote on last edited by
              #6

              bueno seria algo asi.

              dialog->setModal(true)
              dialog->exec().

              el la doc esta setmodal() creo que esto te puede servir, yo asi lo hago.

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved