首页 > 其他分享 >使用qt 获取一张网络图片,并将这张图片显示在qml 上

使用qt 获取一张网络图片,并将这张图片显示在qml 上

时间:2024-07-03 14:23:08浏览次数:1  
标签:ImageProvider qt imageProvider image qml reply include QImage 图片

#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QUrl>
#include <QImage>
#include <QQuickImageProvider>

class ImageProvider : public QQuickImageProvider {
public:
ImageProvider() : QQuickImageProvider(QQuickImageProvider::Image) {}

QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) override {
Q_UNUSED(id);
Q_UNUSED(size);
Q_UNUSED(requestedSize);
return m_image;
}

void setImage(const QImage &image) {
m_image = image;
}

private:
QImage m_image;
};

int main(int argc, char *argv[]) {
QGuiApplication app(argc, argv);

QQmlApplicationEngine engine;

QNetworkAccessManager manager;
QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://example.com/image.jpg")));
QObject::connect(reply, &QNetworkReply::finished, [&]() {
if (reply->error() == QNetworkReply::NoError) {
QImage image = QImage::fromData(reply->readAll());
ImageProvider *imageProvider = new ImageProvider();
imageProvider->setImage(image);
engine.addImageProvider("networkImage", imageProvider);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
}
reply->deleteLater();
});

return app.exec();
}

import QtQuick 2.0

Image {
source: "image://networkImage"
}

标签:ImageProvider,qt,imageProvider,image,qml,reply,include,QImage,图片
From: https://www.cnblogs.com/lllion/p/18281523

相关文章

  • Windows 下安装 Qt 教程
    1.下载安装包进入官网,会出现以下内容:其分别代表着:Name注释snapshots预览版,最新测试中的Qt库和开发工具onlineQt在线安装源official_releases正式发布版,相对稳定的Qt库和开发工具ministro迷你版,针对Android的版本learningQt的文档和示范视......
  • VSCode + Qt + QMake 开发编译环境搭建
    鉴于Qt官方IDE太过难用,VSCode+各种插件功能强大,遂采用VSCode来写Qt项目;本博客在Windows平台进行指导操作,Mac、Linux平台配置方式类似,学习其本质就可。前置准备VSCode,最新版本即可本地Qt环境,版本随意,本文主要针对较老版本使用Qmake构建系统的项目环境变量Qt环境变......
  • 图片和表单数据同时上传
     //请求 exportfunctionaddcountorderitem(data){returnrequest({url:'/countoder/oderitem/add',method:'post',data:data,headers:{'Content-Type':'multipart/form-data'}/......
  • Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换
    一、前言说明这个地图组件写了很多年了,最初设计的比较粗糙,最开始只是为了满足项目需要,并没有考虑太多拓展性,比如最初都是按照百度地图写死在代码中,经过这几年大量的现场实际应用,以及大量的用户提出的改进意见,逐渐萌生了彻底重新编写对应地图相关的代码,比如基类子类的设计,各种功能......
  • QT6 CMake项目配置 (Visual Studio)
    QT6CMake项目配置(VisualStudio)上一节已经编译好了动态和静态的QT库,接下来在CMake中引入。这边主要介绍使用VisualStudio的配置方法测试环境首先使用VS创建一个项目来测试CMake能否正常使用。如果是首次打开VS会有个配置主题的界面,自己选一下就好了首先我们来创建一个C......
  • Deepin23RC2 在线安装qt6.7.2
    摘要:        Deepin23RC2在线安装qt6.7.2及配置的操作记录1.下载在线安装器$wgethttps://ftp.fau.de/qtproject/official_releases/online_installers/qt-unified-linux-x64-online.run2. 安装c++/gdb/libxcb-util1/git$sudoaptupdate$sudoaptupgrade......
  • qt 写入xml文件实例
    这个代码示例展示了如何使用QXmlStreamWriter类在Qt中生成一个包含多级节点和属性的XML文档:1#include<QCoreApplication>2#include<QFile>3#include<QXmlStreamWriter>4#include<QDebug>56intmain(intargc,char*argv[])7{8QCoreApplication......
  • 深入理解Qt多线程编程(QtConcurrent)
    多线程编程在现代软件开发中变得越来越重要,它能够提高应用程序的响应速度和处理性能。在Qt框架中,除了QThreadPool,QtConcurrent也是一个强大的工具,用于简化和管理多线程编程。目录概述接口详解QtConcurrent::runQtConcurrent::mapQtConcurrent::mappedQtConcurrent::filt......
  • 深入理解Qt的隐式共享机制
    在Qt中,一个关键的性能优化特性是其数据结构的隐式共享机制,这在Qt的文档和API中常被称为“隐式共享”或“写时复制(Copy-On-Write,COW)”。本文将详细介绍这一机制,并通过QString类的实现代码和相应的反汇编代码来阐释其工作原理。隐式共享的定义和优点隐式共享是一种内存管......
  • OpenCV——修改图片的分辨率
    importcv2#指定视频文件路径video_path=r'D:\desk\test_django\test\Videos\RGB\Videos\yuan2jing_1.mp4'#指定输出视频文件路径output_path=r'D:\desk\test_django\test\Videos\RGB\Videos\yuan2jing_1_1.mp4'#指定新的分辨率new_width=1280#新宽......