我在这里缺少什么,为什么下面的示例给我编译时错误?

testline.h:

#include <QLineEdit>
class TestLine : public QLineEdit
{
    Q_OBJECT
public:
    TestLine(QWidget *parent = 0);
public slots:
    virtual void on_textEdited(const QString&);
};


testline.cpp:

#include "testline.h"
TestLine::TestLine(QWidget *parent) : QLineEdit(parent)
{
    connect(this, SIGNAL(textEdited(const QString &))), this,
            SLOT(on_textEdited(const QString &)));
}

void TestLine::on_textEdited(const QString &text)
{
   // something
}


错误信息:

../testline.cpp:7:5: error

: no matching member function for call to 'connect'
    connect(this, SIGNAL(textEdited(const QString &))), this,
    ^~~~~~~
../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers/qobject.h:219:43: note: candidate function template not viable: requires at least 4 arguments, but 2 were provided

最佳答案

connect(this, SIGNAL(textEdited(const QString &)))
//     1            2          3               321


此时,您正在执行编译器输出确切说明的内容-您仅使用2个参数调用connect()

关于c++ - Qt:connect()至少需要4个参数,但是提供了2个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40351592/

10-10 14:19