没有匹配成员函数来调用'connect' - 使用'this'时

时间:2014-09-09 13:36:08

标签: c++ qt signals

我的程序工作正常,但我想在其中添加一个额外的信号以显示更新的值。这是信号第一次来自班级本身,所以我决定使用this,你会看到。

该计划

在我的头文件中,像往常一样,我声明了我的信号:

signals:
    void NotifyStatusUpdated(const QString& value);

private:

    SetupTab& m_setupTab;
    Instrument& m_instrument;

在.cpp中,最后构建的是信号:

WireMessages();
emit NotifyStatusUpdated(tr("Long wait time (Ms) updated : %1 ").arg(long_wait));

然后在下面我有这个:

void SetupViewManager::WireMessages()
{
    connect(&m_instrument, &Instrument::NotifyErrorDetected,
            &m_setupTab, &SetupTab::onStatusUpdated);       //this works
    connect(&m_instrument, &Instrument::NotifyStatusUpdated,
            &m_setupTab, &SetupTab::onStatusUpdated);       //this works
    connect(this, &Instrument::NotifyStatusUpdated,       //this does not work (it doesn't build)!
            &m_setupTab, &SetupTab::onStatusUpdated);
}

所以在我的班级参考m_instrument中,我有另一个同名的信号。所以我想在这里调用this类的信号。

错误

error: no matching member function for call to 'connect'
        connect(this, &Instrument::NotifyStatusUpdated,
        ^~~~~~~

这对我来说似乎不合适?我犯了什么愚蠢的错误?

1 个答案:

答案 0 :(得分:2)

代码中的this指针属于SetupViewManager类:

connect(this, &SetupViewManager::NotifyStatusUpdated, ...
//             ^^^^^^^^^^^^^^^^