连接信号和插槽的新方法

时间:2018-08-30 07:55:17

标签: c++ qt

我对以下代码行有疑问:

connect(m_uaProxy, CUaProxy::uaItemChanged,this, CUaHandler::onUaMsgReceived);

我正在使用Qt 5.11.1。在Windows上可以编译和运行,但是会产生以下“问题”:

  

错误:在没有对象参数的情况下调用非静态成员函数

不可能在linux上运行相同的代码,因为这行正好终止了编译。 我认为我正在使用新的信号/插槽连接方法正确运行代码。这里可能是什么情况?

方法定义为: 连接创建类中的信号:

void uaItemChanged(const MsgType msgt,
                   const QVariant& index,
                   const QVariant& value);

CUaProxy类中的插槽:

void onUaMsgReceived(const CUaProxy::MsgType msgt,
                     const QVariant& index,
                     const QVariant& value);

1 个答案:

答案 0 :(得分:4)

我弄错了语法,这是正确的语法(需要该函数的地址):

connect(m_uaProxy, &CUaProxy::uaItemChanged, this, &CUaHandler::onUaMsgReceived);

不知道为什么它可以在Windows平台上工作。