我想使用此旧式连接的QT5样式:
connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this,
SLOT(erreurSocket(QAbstractSocket::SocketError)));
我尝试了
connect(socket, &QTcpSocket::error, this, &FenClient::erreurSocket);
没有成功:
候选功能不可行:对于第二个参数,没有"错误"匹配'const char*'的超载
fenclient.cpp
FenClient::FenClient()
{
setupUi(this);
socket = new QTcpSocket(this);
connect(socket, &QTcpSocket::error, this, &FenClient::erreurSocket);
fenclient.h
private slots:
void erreurSocket(QAbstractSocket::SocketError erreur);
根据文档:
注意:此类信号错误超载。连接到这个 信号通过使用函数指针语法,QT提供了方便 如本示例所示,用于获取函数指针的助手:
connect(abstractSocket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error), [=](QAbstractSocket::SocketError socketError){ /* ... */ });
因此,在您的情况下,解决方案是:
connect(socket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error), this, &FenClient::erreurSocket);