我正在使用Qt 5.4,并试图在从我的QTcpSocket
发出的"断开连接"信号时恢复接受新的连接。所以我分别在。h和。cpp文件中写了如下代码:
QPointer<QTcpServer> tcpServer; // in .h file
connect(tcpSocket, &QAbstractSocket::disconnected, [=](){
tcpServer->resumeAccepting(); // in .cpp file
});
您可以看到,我使用QPointer
类tcpSocket
。使用上述代码,我无法构建我的程序,并且收到"没有匹配的函数来调用…"错误,而如果没有QPointer
定义tcpSocket
,我没有任何问题。
我该如何解决这个问题?
直接连接会更聪明。
connect(tcpSocket, &QAbstractSocket::disconnected,
tcpServer, &QTcpServer::resumeAccepting);
请注意,nextPendingConnection有父设置为QTcpServer
,所以你也可以访问服务器:
auto tcpServer = qobject_cast<QTcpServer *>(sender()->parent());