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

相关文章

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪