Как подключить сигнал 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 &)));