Qt5 获取天气数据时报这个错误是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt5 获取天气数据时报这个错误是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A Qt获取天气信息
该功能主要借助于中国天气网提供每个地方的网页,利用Qt的网络类将网页上的字符串截取下来

步骤一:建立两个相关的Qt网络类的对象

QNetworkAccessManager *manager;
QNetworkReply *reply;
QString city;//用于获取地方的字符串
QString weather;//用于获取天气的字符串
public slots:
void getWeather(QNetworkReply *replyweather);//这里新建个槽,在步骤三的时候要用到
1
2
3
4
5
6
1
2
3
4
5
6
步骤二:获取中国天气网提供每个地方的网页

QString str("http://m.weather.com.cn/data/101010100.html");//里面的那一串数字,代表城市的编码
1
1
步骤三:设置步骤一的两个对象

manager = new QNetworkAccessManager(parent);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(getWeather(QNetworkReply*)));//当获取到响应后,关联到相应槽
QString str("http://m.weather.com.cn/data/101010100.html");
manager->get(QNetworkRequest(QUrl(str)));//请求该网页的响应
1
2
3
4
1
2
3
4
步骤四:截取字符串

void DreamWeather::getWeather(QNetworkReply *replayweather)

QTextCodec *codec=QTextCodec::codecForName("utf8");
QString str=codec->toUnicode(replayweather->readAll());//将获取到的请求全部读出来
//下面是截取网页字符串的操作,具体为什么要怎么做,可以去看看那个网页,就明白鸟
str.replace(QString(""),QString("+"));
QStringList weatherlist=str.split('+');
str=weatherlist.at(list.count()-1);
str.replace(QString(""),QString(""));
str.replace(QString("\""),QString(""));
weatherlist=str.split(',');
for(int i=0;i<weatherlist.count();i++)

QString st;
QStringList li;
st=weatherlist.at(i);
li=st.split(':');
if(li.first()=="city")
city=li.at(1);//获取到地方字符串
if(li.first()=="weather1")
weather1=li.at(1);//获取到地方天气字符串

emit finish(true);

//获取到的相关信息,将保存在步骤一的字符串内,那个网页提供很多信息,可以截取不少东西

“天气预报”是啥意思?

【中文标题】“天气预报”是啥意思?【英文标题】:What does "weather forecasts" mean?“天气预报”是什么意思? 【发布时间】:2021-12-24 00:54:25 【问题描述】:

当我研究RazorPage documentation时,我读到了下面这段:

在终端窗口中,复制并粘贴以下命令

dotnet new webapp -f net6.0

此命令为基本网络创建文件 API 项目,以及名为 RazorPagesPizza.csproj 的 C# 项目文件 这将返回天气预报列表。

那么“天气预报”到底指的是什么?

【问题讨论】:

怀疑文档不正确。以前的 Razor 样本用于天气预报样本,而不是披萨样本 多云,可能会有肉丸。 【参考方案1】:

我怀疑这是编写文档的人的拼写错误/copypasta 错误,从文档中导入了关于不同类型项目的内容。

相当多的 Microsoft 示例应用模板使用天气预报来演示可能在客户端和服务器之间传输的数据。例如,如果您执行 dotnet new blazorserver -f net6.0,您最终会得到一个 Blazor Server 应用,该应用在其 Data 目录中具有 WeatherForecast.cs 和相关服务

那么“天气预报”到底指的是什么?

webapp 模板中;什么都没有 - 除了显示导航菜单侧边栏和索引页面之外,代码实际上并没有做太多事情。

如果您想进入 Web 开发,您可能想跳过 ASP.NET webapp 之一,因为它现在是相当古老的技术。现代 Web 开发趋势是针对在浏览器中运行的 javascript 应用程序,从后端 API 获取少量数据并操作活动的 html 文档以使其看起来像正在发生的事情,而不是在服务器之间发送大量 HTML 块和客户端,并让浏览器将活动页面替换为另一个页面(这就是这个页面所做的)。

如果 javascript 不能让你的船浮起来,看看 Blazor;它像我提到的 javascript-plus-light-communication-with-backend 一样有效地工作,但它允许您仅使用 C# 编写所有页面更改。在 Blazor 服务器应用程序中,服务器维护客户端所需的 HTML 知识,并将其中的一小部分内容发送到活动文档中。在 Blazor Web 应用程序中,一个小的 .net 运行时被发送到客户端,因此 C# 在浏览器中运行并制定了修补到用户看到的文档中的 HTML

【讨论】:

非常感谢~ :) 没问题!如果这回答了您的问题,您可以单击灰色复选标记将其变为绿色。这会改变仪表板上问题的外观,让人们知道您不再寻找答案

以上是关于Qt5 获取天气数据时报这个错误是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

android Studio 项目里报这个错误,是啥原因啊。编译时报错。

java集成kettle调用kjb作业文件时报错,错误信息如下,这个是啥原因?

这个错误是啥意思?

电脑开机时报指定的用户名不可用是啥意思?

HTTP 500 错误是啥意思?

这个错误是啥意思 ActiveRecord::DangerousAttributeError