Использование QPointer и QObject :: connect с C ++ 11

Я использую 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,

Как мне решить эту проблему?

0

Решение

Было бы разумнее сделать прямую связь.

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

Обратите внимание, что nextPendingConnection родитель имеет значение QTcpServerтак что вы также можете получить доступ к серверу:

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

Другие решения


По вопросам рекламы [email protected]