Мне нужно подключить сигнал valueChanged из QLineEdit к пользовательскому слоту программно. Я знаю, как установить соединение с помощью Qt Designer и с помощью графического интерфейса, но я хотел бы сделать это программно, чтобы я мог больше узнать о сигналах и слотах.
Это то, что у меня не работает.
.файл cpp
// constructor
connect(myLineEdit, SIGNAL(valueChanged(static QString)), this, SLOT(customSlot()));
void MainWindow::customSlot()
{
qDebug()<< "Calling Slot";
}
.ч файл
private slots:
void customSlot();
Что мне здесь не хватает?
Спасибо
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 &)));
Других решений пока нет …