使用QPointer和QObject::连接c++ 11



我正在使用Qt 5.4,并试图在从我的QTcpSocket发出的"断开连接"信号时恢复接受新的连接。所以我分别在。h和。cpp文件中写了如下代码:

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

您可以看到,我使用QPointertcpSocket。使用上述代码,我无法构建我的程序,并且收到"没有匹配的函数来调用…"错误,而如果没有QPointer定义tcpSocket,我没有任何问题。

我该如何解决这个问题?

直接连接会更聪明。

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

请注意,nextPendingConnection有父设置为QTcpServer,所以你也可以访问服务器:

 auto tcpServer = qobject_cast<QTcpServer *>(sender()->parent());

相关内容

  • 没有找到相关文章

最新更新