osman hadzic
osman hadzic

Reputation: 9

Qt 5 does not enter in lambda function?

When debug code, never enter into lambda function. Why do I have this problem?

QNetworkRequest req = QNetworkRequest(url);
    QNetworkReply *reply = m_manager->get(req);

    QObject::connect(reply, &QNetworkReply::finished,[reply](){
        qDebug() << "start => ";
        if(reply ->error() == QNetworkReply::NoError) {
            QByteArray response = reply->readAll();
            qDebug() << "response => ";
            qDebug() << QString(response);
            return response;
        } else {
            QByteArray error = reply ->readAll();
            return error;
        }
    });

Upvotes: -1

Views: 360

Answers (1)

osman hadzic
osman hadzic

Reputation: 9

This is the solution to my problem, must create a signal for return data.

    QObject::connect(reply,&QNetworkReply::finished,this, [this, reply]() {
         qDebug() << "Got reply finished";
        if(reply ->error() == QNetworkReply::NoError) {
            m_json= reply->readAll();
            reply->deleteLater();
            emit workResponseChanged(m_workJson);
        } else {
            m_json= reply ->readAll();
            reply->deleteLater();
            emit workResponseChanged(m_workJson);
        }
    });
    return QByteArray();

Upvotes: 0

Related Questions