如何将信号值QLineEditChanged连接到Qt中的自定义插槽
问题描述:
我需要将来自QLineEdit的valueChanged信号以编程方式连接到自定义插槽。我知道如何通过使用Qt Designer进行连接,并使用图形界面进行连接,但我想以编程方式进行连接,以便了解有关信号和插槽的更多信息。如何将信号值QLineEditChanged连接到Qt中的自定义插槽
这就是我所没有的。
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 &)));
改变的valueChanged到框TextChanged和静态QString const const QString&和工作。我不知道我错过了什么,特别是静态的QString(哇),非常感谢。同样非常感谢第二个例子,因为我也在想使用这个参数。非常感谢 –