我对以下代码行有疑问:
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);
答案 0 :(得分:4)
我弄错了语法,这是正确的语法(需要该函数的地址):
connect(m_uaProxy, &CUaProxy::uaItemChanged, this, &CUaHandler::onUaMsgReceived);
不知道为什么它可以在Windows平台上工作。