Qt以函数地址连接的方式连接存在重载的信号函数时,会产生重载歧义,编译器无法确定要连接的重载信号是哪一个。
可以通过以下两种方法来消除重载歧义,这里以QLocalSocket为例:
QLocalSocket client
connect(&client
, qOverload<QLocalSocket::LocalSocketError>(&QLocalSocket::error)
, this
, [=]() {});
connect(&client
, static_cast<void(QLocalSocket::*)(QLocalSocket::LocalSocketError)>(&QLocalSocket::error)
, this
, [=]() {});