qt天气预报(二级联动下拉框选择城市)

 

通过API获取天气信

void my_weather::onGetWeather()
{
    //qDebug()<<QTime::currentTime().toString();
    mNetRequest->setUrl(QUrl(weatherStr));
    mNetRequest->setHeader(QNetworkRequest::UserAgentHeader,"RT-Thread ART");
    mNetManager->get(*mNetRequest);
}

 解析天气数据

void my_weather::analyWeatherXML(QByteArray xml)
{
    //如果数据为空 返回
    if(xml.isEmpty())
    {
        return;
    }
    //qDebug()<<xml.data();
    //json 解析数据 并显示在 textedit上
    QJsonParseError err;
    QJsonDocument jsonDoc = QJsonDocument::fromJson(xml,&err);
    QJsonObject jsonObj= jsonDoc.object().value("data").toObject();

    QJsonObject yesterday = jsonObj.value("yesterday").toObject(); //昨天
    ui->textEdit->clear();
    ui->textEdit->append(JsonObj2String(yesterday));

    QJsonArray forecast = jsonObj.value("forecast").toArray();
    QJsonObject day0 = forecast[0].toObject(); //今天
    ui->textEdit_2->clear();
    ui->textEdit_2->append(JsonObj2String(day0));
    ui->textEdit_today->clear();
    ui->textEdit_today->append(JsonObj2String(day0));

    QJsonObject day1 = forecast[1].toObject(); //明天
    ui->textEdit_3->clear();
    ui->textEdit_3->append(JsonObj2String(day1));

    QJsonObject day2 = forecast[2].toObject();
    ui->textEdit_4->clear();
    ui->textEdit_4->append(JsonObj2String(day2));

    QJsonObject day3 = forecast[3].toObject();
    ui->textEdit_5->clear();
    ui->textEdit_5->append(JsonObj2String(day3));

    QJsonObject day4 = forecast[4].toObject();
    ui->textEdit_6->clear();
    ui->textEdit_6->append(JsonObj2String(day4));
}

效果图:

 

 

 demo下载:https://download.csdn.net/download/lyj548926543/10835473

有一些多余的代码,是我没有解决的问题(通过局域网ip获取内网ip)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值