QML中调用HTTP请求

server/2024/9/23 11:18:38/

涉及到Http请求,第一反应可能是使用Qt的QNetworkRequest和QNetworkReply实现,然后QML再与其交互,但是这样过于麻烦了。其实QML自己已经具备了http网络请求访问的功能。而且使用起来很方便。

我们这里举一个访问天气接口,然后解析其数据的例子。

一,看下效果

QML中调用HTTP请求 – Qt hello

二,代码

主要是利用XMLHttpRequest这个类,请求接口,然后将返回的数据解析成json对象(JSON.parse),之后就可以像js一样去拿json对象里的数据了,当然前提是接口返回得数据是json。

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")//主要看这个函数function request() {var xhr = new XMLHttpRequest();xhr.onreadystatechange = function() {if (xhr.readyState === XMLHttpRequest.HEADERS_RECEIVED) {console.log('HEADERS_RECEIVED')} else if(xhr.readyState === XMLHttpRequest.DONE) {console.log('DONE')console.log(xhr.responseText.toString())var object = JSON.parse(xhr.responseText.toString());text.append(object["errcode"])text.append(object["errmsg"])}}xhr.open("GET", "http://v0.yiketianqi.com/free/v2030?city=&cityid=&adcode=130200000000&appid=&appsecret=&lng=&lat=&aqi=&hours=");xhr.send();}Button{anchors.centerIn: parentonClicked: {request()}}TextEdit {id: textheight: 200width: 300anchors.bottom: parent.bottomanchors.horizontalCenter: parent.horizontalCenter}
}

编辑


http://www.ppmy.cn/server/25071.html

相关文章

办公楼智慧公厕自发电门锁感应器无需电池供电,环保节能!

在当今科技高速发展的时代,办公楼智慧公厕的自发电门锁感应器成以其独特的优势,为办公楼的卫生设施管理带来了全新的变革。这款感应器无需电池供电,真正做到了环保节能,同时在免电池、免维护、信号稳定、门锁升级、把手设计、应用…

DTC 2024,Databend 数据汇聚平台的建设与挑战

近日,第十三届数据技术嘉年华(DTC 2024)在北京新云南皇冠假日酒店落下帷幕。本届大会以“智能云原生一体化——DB 与 AI 协同创新,模型与架构融合发展”为主题,汇聚了 80 余位杰出技术领袖、学术精英、行业实践者、生态…

第三节:多路选择器

1.二选一数据选择器,要求如下: 【注】 always语句块里赋值的变量需要是reg型 module fn_sw(a,b,sel,y); input a,b,sel; output y; assign y (sel0)?(a&b):(a^b); endmodule timescale 1ns/10ps module fn_sw_tb; reg a,b,sel; wire y;fn_sw fn_…

Spring MVC系列之九大核心组件

概述 Spring MVC是面试必问知识点其一,Spring MVC知识体系庞杂,有以下九大核心组件: HandlerMappingHandlerAdapterHandlerExceptionResolverViewResolverRequestToViewNameTranslatorLocaleResolverThemeResolverMultipartResolverFlashMa…

网络安全SQL注入

HTML & Vue.js 结合使用 HTML 是网页的基础结构语言,而 Vue.js 是一个用于构建用户界面的渐进式JavaScript框架。结合两者,你可以创建动态、响应式的Web应用程序。Vue.js通过指令(如v-bind, v-if, v-for)无缝集成到HTML中&am…

AI视频教程下载:用ChatGPT提示词开发AI应用和GPTs

在这个课程中,你将深入ChatGPT的迷人世界,学习如何利用其能力构建创新和有影响力的工具。你将发现如何创建不仅吸引而且保持用户参与度的应用程序,将流量驱动到你的网站,并开辟新的货币化途径。 **课程的主要特点:** …

mySql 基础语法

几个关键字 like 1、%:是一个通配符,代表零个、一个或多个字符a. 查找,以特定字符串开头的值:SELECT * FROM 表名 WHERE 列名 LIKE 前缀%;b. 查找,以特定字符串结尾的值:SELECT * FROM 表名 WHERE 列名 LI…

指纹浏览器:网络安全与隐私的新工具

在互联网时代,隐私和网络安全成为人们越来越关注的话题。随着数字化的发展,个人信息的泄露和在线追踪的问题愈发严峻。在这个背景下,"指纹浏览器"作为一种新型工具,开始受到关注。撸空投需要了解指纹浏览器。本文将深入…