QT多张图片的重叠显示

2023-10-31 14:20
文章标签 显示 qt 图片 重叠 多张

本文主要是介绍QT多张图片的重叠显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QT 中可以加载显示多张图片,如果同时显示多张图片,并且显示图片重叠的效果,就要使用CompositionMode了。

注意:设置模式只能设置图片!

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
class QImage;namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();void paintEvent(QPaintEvent *event)override;private:Ui::MainWindow *ui;QImage* firstImage=nullptr;QImage* secondImage=nullptr;
};#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QPainter>
#include <QImage>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);firstImage = new QImage(500,500,QImage::Format_ARGB32_Premultiplied);secondImage = new QImage(500,500,QImage::Format_ARGB32_Premultiplied);
}MainWindow::~MainWindow(){delete ui;
}void MainWindow::paintEvent(QPaintEvent *event){//绘制第一张图片QPainter painterFirst(firstImage);firstImage->fill(Qt::transparent);//设置透明painterFirst.setBrush(Qt::red);painterFirst.drawRect(50,50,100,100);//绘制第二张图片QPainter painterSecond(secondImage);secondImage->fill(Qt::transparent);painterSecond.setBrush(Qt::blue);painterSecond.drawRect(100,100,100,100);//设置图片的重叠模式painterFirst.setCompositionMode(QPainter::CompositionMode_SourceOver);//重叠图片painterFirst.drawImage(0, 0, *secondImage);//展示图片QPainter painter2(this);painter2.drawImage(0,0,*firstImage);
}

以下是几种重叠模式效果图:
CompositionMode_Source
CompositionMode_SourceOver
CompositionMode_Destination
在这里插入图片描述
CompositionMode_SourceOver
在这里插入图片描述
CompositionMode_DestinationOver
在这里插入图片描述
CompositionMode_SourceIn
在这里插入图片描述
CompositionMode_DestinationIn
在这里插入图片描述
CompositionMode_Plus
在这里插入图片描述

aaa

这篇关于QT多张图片的重叠显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/315968

相关文章

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC