Как подключить сигнал valueChanged из QLineEdit к пользовательскому слоту в Qt

мне нужно подключить сигнал valueChanged от QLineEdit к пользовательскому слоту программно. Я знаю, как сделать соединение с помощью Qt Designer и сделать соединение с графическим интерфейсом, но я хотел бы сделать это программно, чтобы я мог узнать больше о сигналах и слотах.

это то, что у меня есть, что не работает.

.файл cpp

// constructor
connect(myLineEdit, SIGNAL(valueChanged(static QString)), this, SLOT(customSlot()));

void MainWindow::customSlot()
{
    qDebug()<< "Calling Slot";
}

.файл H

private slots:
    void customSlot();

чего мне не хватает здесь?

спасибо

1 ответов


QLineEdit не valueChanged сигнал, но textChanged (полный список поддерживаемых сигналов см. В документации Qt). Вам нужно изменить свой connect() вызов функции тоже. Должно быть:

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

Если вам нужен дескриптор нового текстового значения в слоте, вы можете определить его как customSlot(const QString &newValue) вместо этого, поэтому ваше соединение будет выглядеть так:

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