How to connect the signal valueChanged from QLineEdit to a custom slot in Qt

30,499

QLineEdit does not seem to have valueChanged signal, but textChanged (refer to the Qt documentation for complete list of supported signals). You need to change your connect() function call too. It should be:

connect(myLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(customSlot()));

If you need the handle the new text value in your slot, you can define it as customSlot(const QString &newValue) instead, so your connection will look like:

connect(myLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(customSlot(const QString &)));
Share:
30,499
fs_tigre
Author by

fs_tigre

Updated on July 09, 2022

Comments

  • fs_tigre
    fs_tigre almost 2 years

    I need to connect the valueChanged signal from QLineEdit to a custom slot programatically. I know how to do the connection by using Qt Designer and doing the connection with graphical interface but I would like to do it programmatically so I can learn more about the Signals and Slots.

    This is what I have that doesn't work.

    .cpp file

    // constructor
    connect(myLineEdit, SIGNAL(valueChanged(static QString)), this, SLOT(customSlot()));
    
    void MainWindow::customSlot()
    {
        qDebug()<< "Calling Slot";
    }
    

    .h file

    private slots:
        void customSlot();
    

    What am I missing here?

    Thanks

  • fs_tigre
    fs_tigre over 10 years
    Changed valueChanged to textChanged and static QString to const QString & and worked. I don't know how I missed that, specially static QString (wow), thanks a lot. Also thanks a lot for the second example since I was also wondering about the usage of the parameter. Thanks a LOT
  • Logesh G
    Logesh G over 5 years
    Here's Qt 5's new way to connect, connect(myLineEdit, &QLineEdit::textChanged, this, &MainWindow::customSlot);