【发布时间】:2014-08-08 17:13:35
【问题描述】:
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() 时,QString str 是空的,因为它以这种方式返回,而无需等待 ReplayFinished 更新它。
等待工作完成的解决方案可能是什么,以便我可以获得正确的信息,而不是跳过它并返回其他内容。
谢谢。
【问题讨论】:
-
你想使用QNetworkAccessManager::get in synchronous manner? 其他然后你的解决方案似乎工作正常。不知道你为什么要从
My_Method返回一个字符串,因为我没有看到它在以后的任何地方声明或使用。 -
如我所说,它已在 .h 文件中声明 :)
标签: c++ qt httprequest qnetworkaccessmanager get-request