在qt程序中,需要获得当前天气的信息,程序如下
{
//主函数如下,创建一个定时器,每隔10秒钟查询时间及天气信息,
manager = new QNetworkAccessManager(this);//程序启动,创建QNetworkAccessManager对象 ammeter_updateTimer = new
QTimer(this);
connect(ammeter_updateTimer, SIGNAL(timeout()), this, SLOT(doQuery()));
ammeter_updateTimer->start(10*1000);
doQuery();
}
void doQuery()
{ QString url;
if(1){
url = "
http://www.google.com/ig/api?hl=zh_cn&weather=Beijing";
}else{
url = "
http://www.google.com/ig/api?hl=en&weather=Beijing";
}
request.setUrl(QUrl(url));
reply = manager->get(request);
connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(slotReadError(QNetworkReply::NetworkError)));
}
void slotReadyRead(){
//读取网页内容
QString xmlFile = reply->readAll();
...........
}
void AmmeterShowForm::slotReadError(QNetworkReply::NetworkError error){
// 处理错误}
程序如上,但有个
问题,假如程序启动时,假如
网络不通的话,查询不到天气内容,但即使网络后来联通了,依然报 slotReadError,不知是什么问题,应该是某些资源
没有释放,哪位达人知道原因,麻烦解答一下,谢谢。