Я написал код для отправки данных на HTTP-сервер и ожидания получения ответа, он работает, но мой интерфейс QML закрывается после каждого запуска кода. Кто-нибудь знает, как я могу предотвратить это?
Моя программа использует функцию exec () из QEventLoop, и это вызывает проблемы.В документации говорят, что вместо этого нужно использовать QTimer, но я не могу найти способ сделать это и получить ответ от сервера ...
QNetworkAccessManager *manager;
manager = new QNetworkAccessManager(this);
manager->setNetworkAccessible(QNetworkAccessManager::Accessible);
connect(manager, SIGNAL(finished(QNetworkReply*)), qApp, SLOT(quit()));
NetworkRequest request;
request.setUrl(QUrl("serverURL"));
request.setHeader( QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded" );
QUrlQuery data;
data.addQueryItem("name","data");
//important part:
QNetworkReply* reply=
manager->post(request,data.toString(QUrl::FullyEncoded).toUtf8());
QEventLoop loop;
connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
'' '
Этот код помещает ответ сервера в 'reply' и работает просто отлично, но он систематически разрушает мой визуальный интерфейс Qtquick, и я действительно не могу этого получить.Я буду продолжать пытаться на моей стороне, но я был бы очень признателен, если бы вы могли мне помочь.Заранее спасибо!