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

Мне нужно подключить сигнал 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();

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

Спасибо

7

Решение

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 &)));
18

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]