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 acceder desde una clase a widgets del MainWindow
Forum Updated to NodeBB v4.3 + New Features

Como acceder desde una clase a widgets del MainWindow

Scheduled Pinned Locked Moved Spanish
5 Posts 3 Posters 3.4k 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.
  • S Offline
    S Offline
    Sergio
    wrote on last edited by
    #1

    Buenas

    Tengo una clase para comunicarme con el arduino, desde ella recojo los datos leyéndolos a través del puerto serie en un hilo aparte del main y los guardo en variables para luego representarlas en una gráfica en tiempo real. Mi pregunta es, hay alguna forma de pasárselos al MainWindow para que los represente en las gráficas y en los label del formulario principal??

    Puedo trabajar con porcentajes en los widgets para que se adapten al tamaño de pantalla donde ejecuto la aplicación?

    Muchas gracias,
    Un saludo

    juankiJ 1 Reply Last reply
    0
    • S Sergio

      Buenas

      Tengo una clase para comunicarme con el arduino, desde ella recojo los datos leyéndolos a través del puerto serie en un hilo aparte del main y los guardo en variables para luego representarlas en una gráfica en tiempo real. Mi pregunta es, hay alguna forma de pasárselos al MainWindow para que los represente en las gráficas y en los label del formulario principal??

      Puedo trabajar con porcentajes en los widgets para que se adapten al tamaño de pantalla donde ejecuto la aplicación?

      Muchas gracias,
      Un saludo

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

      Hola

      @Sergio said:

      Tengo una clase para comunicarme con el arduino, desde ella recojo los datos leyéndolos a través del puerto serie en un hilo aparte del main y los guardo en variables para luego representarlas en una gráfica en tiempo real. Mi pregunta es, hay alguna forma de pasárselos al MainWindow para que los represente en las gráficas y en los label del formulario principal??

      Si has usado QtCreator y QtDesigneg para crear la ventana, todo lo que hayas puesto en la ventana estará accesible a través del puntero ui que te crea Qt.

      Si necesitas acceder a los elementos de la ventana desde otra clase, tendrás que pasarle un puntero para que puedas interactuar con ellos.

      @Sergio said:

      Puedo trabajar con porcentajes en los widgets para que se adapten al tamaño de pantalla donde ejecuto la aplicación?

      Usando los layout puedes hacer que el contenido de la ventana se vaya "reajustando" según redimensionas la ventana.

      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
      • S Offline
        S Offline
        Sergio
        wrote on last edited by
        #3

        Hola @juanki

        Muchas gracias, intentare a ver si me sale. En un principio intente pasarle un puntero a la clase de comunicaciones, donde en el constructor de la misma le paso el puntero ui del mainwindow.

        Por otra parte, lo de los porcentajes intentare hacerlo en los dias proximos y si tengo algún problema ya vuelvo a preguntar.

        Un saludo.

        BrikinhosB 1 Reply Last reply
        0
        • S Offline
          S Offline
          Sergio
          wrote on last edited by Sergio
          #4

          Buenas de nuevo,

          Tengo una duda, como comento antes tengo un hilo que utiliza el serial para leer datos del arduino. Quería saber como se hace para que el hilo este comprobando continuadamente (es decir leyendo todo el rato) si hay datos disponibles. He usado el movetothread para crear el hilo pero creo que tengo que usar señales para que el hilo empiece a leer.

          En mainWindow tengo un boton start para que abra el puerto serie que selecciono en un comboBox y ahí es cuando creo el hilo para que este leyendo del puerto serie. La funcion es:

              hilo_lec = new QThread(this);
              com->moveToThread(hilo_lec);
              qDebug()<<"hilo: "<<hilo_lec->currentThreadId();
              
              //Empieza la lectura de los datos
              //aqui es donde no se como hacer que llame a la funcion 
              //leer que tengo en la clase comunicaciones.
          

          Muchas gracias,
          un saludo.

          1 Reply Last reply
          0
          • S Sergio

            Hola @juanki

            Muchas gracias, intentare a ver si me sale. En un principio intente pasarle un puntero a la clase de comunicaciones, donde en el constructor de la misma le paso el puntero ui del mainwindow.

            Por otra parte, lo de los porcentajes intentare hacerlo en los dias proximos y si tengo algún problema ya vuelvo a preguntar.

            Un saludo.

            BrikinhosB Offline
            BrikinhosB Offline
            Brikinhos
            wrote on last edited by
            #5

            @Sergio

            @Sergio said:

            Hola @juanki

            Muchas gracias, intentare a ver si me sale. En un principio intente pasarle un puntero a la clase de comunicaciones, donde en el constructor de la misma le paso el puntero ui del mainwindow.

            Por otra parte, lo de los porcentajes intentare hacerlo en los dias proximos y si tengo algún problema ya vuelvo a preguntar.

            Un saludo.

            Hola, a ver si puedo ayudarte. Supongo que tu clase Comunicaciones obtiene los datos de tu placa Arduino y los guardará en algún sitio, podrías intentar crear una instancia de Comunicaciones en la clase MainWindows, utilizar métodos de Comunicaciones que obtengan esos datos, y como en la clase MainWindows tienes el elemento "ui" desde el que accedes a los widgets pues les vas dando esos valores (Lo de pasar ui a otra clase es un poco raro, no lo he visto en ningún sitio).

            Ahora el problema está en que necesitas usar algo que funcione en tiempo real, es decir, que te dé continuamente los datos de la placa. Yo en este tema no te puedo ayudar porque lo di en Java, pero parece ser que hay un método que indica cuándo cambia la señal de un puerto, con lo que puedes actualizar tu gráfico cada vez que cambia. Te he encontrado este ejemplo a ver si te sirve: http://www.advsofteng.com/doc/cdcppdoc/realtimedemoqt.htm

            Si se da el caso de que necesites recibir, por ejemplo, 4 datos a la vez, y cuando estén mostrarlo en el gráfico, necesitarás usar concurrencia. Un saludo.

            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