¿Qué significa recibir un error al obtener datos meteorológicos en Qt5?
Esta función utiliza principalmente las páginas web proporcionadas por China Weather Network y utiliza la clase de red de Qt para interceptar cadenas en las páginas web
Paso 1: crear dos Qt relacionados objeto de clase de red
QNetworkAccessManager *manager;
QNetworkReply *reply;
QString ciudad //Obtener la cadena de la ubicación
QString Weather; //Obtener la cadena meteorológica
Slot público:
void getWeather( QNetworkReply *replyweather); //Nuevo slot aquí, para usar en el paso 3
1
2
3
4
5
6
1
2
3
4
5
6
Paso 2: Obtenga las páginas web de varios lugares proporcionadas por China Weather Network
QString str("/data/101010100.html" // La cadena numérica que contiene representa el código de ciudad
1
1
Paso 3: Configure los dos objetos en el paso 1
manager = new QNetworkAccessManager(parent);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT( getWeather(QNetworkReply*))); // Al obtener la respuesta, asóciela al slot correspondiente
QString str(" / data/101010100.html");
manager-gt; get(QNetworkRequest(QUrl (str))); //solicita la respuesta de esta página
1
2
3
4
1
2
3
4
Paso 4: Interceptar cadena
void DreamWeather: .getWeather(QNetworkReply *replayweather)
{
QTextCodec * codec= QTextCodec::codecForName("utf8");
QString str=codec- gt; toUnicode(replayweather-gt; readAll() //leer todas las solicitudes obtenidas
/ / Aquí está la operación de interceptar cadenas de páginas web. Específicamente por qué y cómo hacerlo, puede ir y mirar esa página web y luego lo entenderá.
str.replace(QString("/ ""), QString(""));
lista meteorológica=str.split(', '
for(int i=0; ilt. lista meteorológica.count()); ;i )
{
QStrin
g st;
QStringList li;
st=weatherlist.at(i);
li=st.split(':');
if(li.first()=="city")
city=li.at(1); //obtiene la cadena local
if(li. if (li.first()=="weather1")
weather1=li.at(1 //obtiene la cadena meteorológica local
}
emit Finish(true);
}
//Obtén la información relevante que se guardará dentro de la cadena en el paso 1, esa página web proporciona mucha información, puedes interceptar muchas cosas