Я использую 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
,
Как мне решить эту проблему?
Было бы разумнее сделать прямую связь.
connect(tcpSocket, &QAbstractSocket::disconnected,
tcpServer, &QTcpServer::resumeAccepting);
Обратите внимание, что nextPendingConnection родитель имеет значение QTcpServer
так что вы также можете получить доступ к серверу:
auto tcpServer = qobject_cast<QTcpServer *>(sender()->parent());