当前位置:网站首页>Qt实战案例(54)——利用QPixmap设计图片透明度
Qt实战案例(54)——利用QPixmap设计图片透明度
2022-07-31 15:28:00 【wendy_ya】
一、项目介绍
本文介绍利用QPixmap设计图片透明度,可以看到拖动下方进度条,用于控制上方图片的透明度。
二、项目基本配置
新建一个Qt案例,项目名称为“TransparencyTest”,基类选择“QWidget”,点击选中创建UI界面复选框,完成项目创建。
三、UI界面设置
UI界面如下:
序号 | 名称 | 类型 | 属性 |
---|---|---|---|
① | label_photo | QLabel | / |
② | slider | QSlider | minimum:0;maximum:255; |
四、主程序实现
4.1 widget.h头文件
头文件中需要声明滑动条移动槽函数:
右键——>滑动条——>sliderMoved:
我这里是:
private slots:
void on_Slider_sliderMoved(int position);
4.2 widget.cpp源文件
源文件中首先在构造函数中设置背景label的图片,然后设置label位置,设置滑动条初始位置位于最右侧:
//设置窗口大小
setFixedSize(800,600);
//设置背景label的图片
QPixmap pix(":/test.jpg");
ui->label_photo->setPixmap(pix);
//设置lable位置
ui->label_photo->setScaledContents(true);
ui->label_photo->setGeometry(10,10,200,150);
ui->label_photo->raise();
ui->label_photo->show();
//设置初始滑动条位置在最右端
ui->Slider->setValue(255);
定义滑动条滑动槽函数:
void Widget::on_Slider_sliderMoved(int position)
{
//设置新的图片的透明度
QPixmap pix1(":/test.jpg");
QPixmap temp(pix1.size());
temp.fill(Qt::transparent);
QPainter p1(&temp);
p1.setCompositionMode(QPainter::CompositionMode_Source);
p1.drawPixmap(0, 0, pix1);
p1.setCompositionMode(QPainter::CompositionMode_DestinationIn);
//根据QColor中第四个参数设置透明度,此处position的取值范围是0~255
p1.fillRect(temp.rect(), QColor(0, 0, 0, position));
p1.end();
pix1 = temp;
ui->label_photo->setPixmap(pix1);
}
五、效果演示
完整效果如下:
如果没有看懂的话,完整代码可以参考:https://download.csdn.net/download/didi_ya/86268287
ok,以上便是本文的全部内容了,如果对你有所帮助,记得点个赞哟~
边栏推荐
- TRACE32——C源码关联
- Internet banking stolen?This article tells you how to use online banking safely
- Synchronized and volatile interview brief summary
- MySQL基础篇【单行函数】
- NC | 中国农大草业学院杨高文组揭示发现多因子干扰会降低土壤微生物多样性的积极效应...
- TRACE32 - C source code association
- vb中如何连接mysql_vb怎么连接数据库「建议收藏」
- Jmeter常用的十大组件
- mysql black window ~ build database and build table
- SQL、HQL、JPQL 到底有什么区别
猜你喜欢
安装Xshell并使用其进行Ymodem协议的串口传输
Why is the field of hacking almost filled with boys?
工程水文学复习资料
名创优品斥资6.95亿购买创始人叶国富所持办公楼股权
长得很怪的箱图
11 pinia使用
【Meetup预告】OpenMLDB+OneFlow:链接特征工程到模型训练,加速机器学习模型开发
Public Key Retrieval is not allowed error solution when DBeaver connects to MySQL 8.x
TRACE32——基于SNOOPer的变量记录
AVH部署实践 (一) | 在Arm虚拟硬件上部署飞桨模型
随机推荐
button控件的使用
Excel快速对齐表格的中姓名(两个字姓名和三个字姓名对齐)
WPF项目--控件入门基础用法,必知必会XAML
How useful is four-quadrant time management?
【MySQL】Mysql范式及外键作用
Efficient use of RecyclerView Section 1
Destruction order of thread_local variables
Jmeter常用的十大组件
RecyclerView高效使用第三节
MySQL基础篇【单行函数】
四象限时间管理有多好用?
Kubernetes原理剖析与实战应用手册,太全了
7、常见面试口语提问问题汇总
Ubantu专题5:设置静态ip地址
C语言”三子棋“升级版(模式选择+AI下棋)
border控件的使用
7. Summary of common interview questions
Implementing click on the 3D model in RenderTexture in Unity
Synchronized and volatile interview brief summary
工程流体力学复习