Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Spanish
  4. QLineEdit
Forum Updated to NodeBB v4.3 + New Features

QLineEdit

Scheduled Pinned Locked Moved Solved Spanish
6 Posts 2 Posters 1.1k 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.
  • F Offline
    F Offline
    FranGS
    wrote on last edited by
    #1

    Buenas tardes, hace poco empece un proyecto en qt (que no he usado nunca), y estoy un poco pez aun. Problema:
    Tengo un formulario que un monton de QlineEdit al los cuales cuando hay modificaciones los conecto a un slot para sabes que hay cambios de esta manera:

    foreach(QLineEdit* le, this->findChildren<QLineEdit*>()) {
            connect(le, SIGNAL(textChanged(const QString &)), this, SLOT(CambiosEnFichaCliente(const QString &)));
        }
    

    Pero yo quiero que el QlineEdit, que haya sido modificado, quede cambiado de color de fondo para que quede resaldo. He mirado la documentacion pero QLineEdit no tiene ninguna señal que envie al slot el propio objeto ... o no he sabido verlo :( Se que podría crear mi propio qlineedit y tal .. programando la señal y eso ... pero aun no me veo con conocimientos de qt ... para meterme en ese lio. y quiero que mi función CambiosEnFichaCliente() reciba el objeto (el QLineEdit) modificado para poder cambiarle el color de fondo. Se que se puede hacer campo por campo ... pero... son muchos ....
    Muchas gracias a toda la comunidad

    1 Reply Last reply
    0
    • O Offline
      O Offline
      ollarch
      wrote on last edited by ollarch
      #2

      Hola,

      Puedes hacer esto:

      Dentro del SLOT "CambiosEnFichaCliente" haces lo siguiente:

      //Primero tienes que cambiar el color de fondo de todos los QLineEdit.
      
      //Luego puedes cambiar el color de fondo del QLineEdit que ha emitido el SIGNAL:
      QObject *object = sender();
      QLineEdit *lineEdit = static_cast<QLineEdit*>(object);
      if (lineEdit)
       //Código para cambiar el color de fondo
      
      F 2 Replies Last reply
      2
      • O ollarch

        Hola,

        Puedes hacer esto:

        Dentro del SLOT "CambiosEnFichaCliente" haces lo siguiente:

        //Primero tienes que cambiar el color de fondo de todos los QLineEdit.
        
        //Luego puedes cambiar el color de fondo del QLineEdit que ha emitido el SIGNAL:
        QObject *object = sender();
        QLineEdit *lineEdit = static_cast<QLineEdit*>(object);
        if (lineEdit)
         //Código para cambiar el color de fondo
        
        F Offline
        F Offline
        FranGS
        wrote on last edited by
        #3

        @ollarch said in QLineEdit:

        n

        Muchas gracias ollarch, ahora mismo lo pruebo a ver que tal :)

        1 Reply Last reply
        0
        • O ollarch

          Hola,

          Puedes hacer esto:

          Dentro del SLOT "CambiosEnFichaCliente" haces lo siguiente:

          //Primero tienes que cambiar el color de fondo de todos los QLineEdit.
          
          //Luego puedes cambiar el color de fondo del QLineEdit que ha emitido el SIGNAL:
          QObject *object = sender();
          QLineEdit *lineEdit = static_cast<QLineEdit*>(object);
          if (lineEdit)
           //Código para cambiar el color de fondo
          
          F Offline
          F Offline
          FranGS
          wrote on last edited by
          #4

          @ollarch
          uaaauuu que descubrimiento: sender()!!! gracias gracias !!! thz thz thz

          1 Reply Last reply
          1
          • O Offline
            O Offline
            ollarch
            wrote on last edited by
            #5

            Hola,

            QObject *object() = sender();
            if (object != 0)
            ...
            

            Falta esta verificación ya que muchas veces reutilizamos un método que puede ser llamado desde un SIGNAL y también directamente des de código. En caso de llamarlo desde código, el puntero object valdrá 0 (NULL).

            F 1 Reply Last reply
            1
            • O ollarch

              Hola,

              QObject *object() = sender();
              if (object != 0)
              ...
              

              Falta esta verificación ya que muchas veces reutilizamos un método que puede ser llamado desde un SIGNAL y también directamente des de código. En caso de llamarlo desde código, el puntero object valdrá 0 (NULL).

              F Offline
              F Offline
              FranGS
              wrote on last edited by
              #6

              @ollarch muchas gracias por la sugerencia.

              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