我需要以编程方式将QLineEdit的valueChanged信号连接到自定义插槽。我知道如何使用Qt Designer进行连接并使用图形界面进行连接,但是我想通过编程方式进行连接,因此我可以了解有关信号和插槽的更多信息。

这就是我所没有的。

.cpp文件

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

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

.h文件
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 &)));

08-16 09:47