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

相关文章

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

使用Python将长图片分割为若干张小图片

《使用Python将长图片分割为若干张小图片》这篇文章主要为大家详细介绍了如何使用Python将长图片分割为若干张小图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果1. Python需求

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用