Russian Qt Forum

Qt => Работа с сетью => Тема начата: lega4 от Май 11, 2011, 20:08



Название: QNetworkAccessManager
Отправлено: lega4 от Май 11, 2011, 20:08
Заранее извините, если странный вопрос, я просто пока еще не очень хорошо разбираюсь в Qt, недавно начал изучать.
В документации приводится такой пример get-запроса
Код:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
 connect(manager, SIGNAL(finished(QNetworkReply*)),
         this, SLOT(replyFinished(QNetworkReply*)));

 manager->get(QNetworkRequest(QUrl("http://qt.nokia.com")));
Как я понял механизм работы - после manager->get(...), по сути, код будет выполняться дальше, и извещение о завершении запроса мы можем получить только через сигнал finished менеджера. А мне бы хотелось сделать так, чтобы программа дальше не выполнялась, пока запрос не будет сделан. Если совсем просто, то чтобы можно было написать нечто типа QString MyGET (QUrl) - функции, сразу возвращающей результат запроса. Абстрактненький примерчик:
Код:
QString MyGET (QUrl)
{//Какая-то реализация
}
 int main()
{...
MyLabel->setText(MyGET(QUrl("http://123.ru")); //После этой строки в лейбле уже будет результат запроса и следующая строка спокойно может его использовать
}


Название: Re: QNetworkAccessManager
Отправлено: Ubuntu_linux от Май 12, 2011, 00:05
Код
C++ (Qt)
QEventLoop