QString My_class::My_Method()
{
QNetworkAccessManager *manager= new QNetworkAccessManager(this);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(ReplayFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl(My_URL)));
return str;
}
void My_class::ReplayFinished(QNetworkReply *replay)
{
QString buffer;
if(replay->isOpen())
{
buffer=replay->readAll();
//treatment on the buffer and the public Qstring 'str'(declared in My_class.h) is updated
}
}
안녕하세요, 문제가 주요의 My_method()를 호출 할 때이 ReplayFinished 그것을 업데이트 할 때까지 기다리지 않고 그런 식으로 반환 된 때문에 QString str
가 비어 있다는 것입니다. 작업이 완료 될 때까지 기다려야하는 솔루션이 될 수 있으므로 적절한 정보를 얻을 수 있으므로 건너 뛰거나 다른 것을 반환하지 않아도됩니다. 감사합니다.QNetworkAccessManager 문제
은 사용 하시겠습니까을 (HTTP : //developer.nokia.com/community/wiki/How_to_wait_synchronously_for_a_Signal_in_Qt) 그런 다음 당신의 솔루션이 제대로 작동하는 것 같습니다. 왜 당신이 선언했거나 나중에 어디서나 사용되는 것을 보지 못하기 때문에'My_Method'에서 문자열을 반환하는 이유를 모르겠습니다. –
그것은 내가 말했듯이 .h 파일에 선언되어있다. –