0

我正在使用 Qt 5.4 并尝试在QTcpSocket发出来自我的“断开连接”信号时恢复接受新连接。所以我分别在 .h 和 .cpp 文件中写了以下内容:

QPointer<QTcpServer> tcpServer; // in .h file

connect(tcpSocket, &QAbstractSocket::disconnected, [=](){
        tcpServer->resumeAccepting(); // in .cpp file
    });

如您所见,我将QPointer类用于tcpSocket. tcpSocket使用上面的代码,我无法构建我的程序并收到“没有匹配的函数来调用...”错误,而在没有定义的情况下我没有任何问题QPointer

我应该如何解决这个问题?

4

1 回答 1

2

直接连接会更聪明。

 connect(tcpSocket, &QAbstractSocket::disconnected, 
         tcpServer, &QTcpServer::resumeAccepting);

请注意nextPendingConnection的 parent 设置为QTcpServer,因此您还可以通过以下方式访问服务器:

 auto tcpServer = qobject_cast<QTcpServer *>(sender()->parent());
于 2015-06-09T07:54:19.053 回答