Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Spanish
  4. ¿como conecto un dialog con mi mainwindow para que se modifique algo en este ultimo?

¿como conecto un dialog con mi mainwindow para que se modifique algo en este ultimo?

Scheduled Pinned Locked Moved Solved Spanish
7 Posts 3 Posters 1.7k Views
  • 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.
  • J Offline
    J Offline
    juan pablo pardal
    wrote on last edited by
    #1

    Hola, que tal, soy bastante nuevo en qt y estaba probando diferentes cosas para aprender a manejarlo.
    Mi problema es que quiero, por ejemplo, que en mi form1 haya un text edit y que al apretar un push button, el texto ingresado se pase a una label en mi MainWindow.
    Como ya dije soy muy nuevo y no entiendo bien, estuve leyendo sobre el tema de señales y slots y entendi algo, pero todo lo que probaba me da error o compila pero no se ejecuta correctamente. Gracias por su tiempo.
    Saludos

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

      Hola

      Pues con señales se puede hacer, dices que te daba errores, algo estaba mal, seguro, hay que aprender a entender y saber por que da el error para intentar corregirlos.

      Puedes crear una señal personalizada que envíe un QString y la emites cuando se pulse el botón, y la conectas con el slot setText(QString) del QLabel en el que quieras que se muestre el texto.

      Un saludo

      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
      • J Offline
        J Offline
        juan pablo pardal
        wrote on last edited by
        #3

        Claro, el problema es que no se bien como crear señales ni como usar correctamente el connect.
        Gracias por tu respuesta

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

          Hola

          Lo primero que tienes que hacer es crear la señal en el .h de tu form:

          signals:
              void nuevoTexto(QString);
          

          Luego, al pulsar el botón emites la señal:

          void Dialog::on_botonEnviarSeñal_clicked()
          {
              emit nuevoTexto(ui->tu_line_edit->text());
          }
          

          Ahora ya tan solo te falta en el mainwindows crear el diálogo y conectar las señales:

          Dialog *dialog = new Dialog(this);
          connect(dialog, SIGNAL(nuevoTexto(QString)), ui->tu_label, SLOT(setText(QString)));
          

          Algo así creo que debe funcionar.

          Un saludo

          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'.

          C 1 Reply Last reply
          0
          • J Offline
            J Offline
            juan pablo pardal
            wrote on last edited by
            #5

            perdon por la tardanza, recien lo leo. Ya lo pude implementar y es asi como dices, te agradezco por tu respuesta, un saludo.

            1 Reply Last reply
            0
            • juankiJ juanki

              Hola

              Lo primero que tienes que hacer es crear la señal en el .h de tu form:

              signals:
                  void nuevoTexto(QString);
              

              Luego, al pulsar el botón emites la señal:

              void Dialog::on_botonEnviarSeñal_clicked()
              {
                  emit nuevoTexto(ui->tu_line_edit->text());
              }
              

              Ahora ya tan solo te falta en el mainwindows crear el diálogo y conectar las señales:

              Dialog *dialog = new Dialog(this);
              connect(dialog, SIGNAL(nuevoTexto(QString)), ui->tu_label, SLOT(setText(QString)));
              

              Algo así creo que debe funcionar.

              Un saludo

              C Offline
              C Offline
              Casino
              wrote on last edited by
              #6

              @juanki
              Lo hice, con la diferencia de que en vez de un label habia otro lineEdit, pero no pone nada....

              juankiJ 1 Reply Last reply
              0
              • C Casino

                @juanki
                Lo hice, con la diferencia de que en vez de un label habia otro lineEdit, pero no pone nada....

                juankiJ Offline
                juankiJ Offline
                juanki
                Moderators
                wrote on last edited by
                #7

                Hola @Casino, Imagino que ésta es la solución que enconraste para tu otra pregunta, por favor, recuerda mantener un órden, responder en el hilo apropiado y marcar el tema como solucionado si se encontró la solución.

                Un saludo

                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
                1

                • Login

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