0

私は Qt 5.4 を使用しており、「切断された」信号が送信されたときに新しい接続の受け入れを再開しようとしていQTcpSocketます。そこで、.h ファイルと .cpp ファイルにそれぞれ次のように記述しました。

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

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

ご覧のとおり、私はQPointerclass forを使用していtcpSocketます。上記のコードでは、プログラムをビルドできず、「... への呼び出しに一致する関数がありません」というエラーが表示されますが、tcpSocketなしで定義した場合は問題ありませんQPointer

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

直接接続した方が賢明でしょう。

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

nextPendingConnectionのは に設定されてQTcpServerいるため、次の方法でもサーバーにアクセスできます。

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