Qt实战案例(54)——利用QPixmap设计图片透明度
生活随笔
收集整理的這篇文章主要介紹了
Qt实战案例(54)——利用QPixmap设计图片透明度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 一、項目介紹
- 二、項目基本配置
- 三、UI界面設置
- 四、主程序實現
- 4.1 widget.h頭文件
- 4.2 widget.cpp源文件
- 五、效果演示
一、項目介紹
本文介紹利用QPixmap設計圖片透明度,可以看到拖動下方進度條,用于控制上方圖片的透明度。
二、項目基本配置
新建一個Qt案例,項目名稱為“TransparencyTest”,基類選擇“QWidget”,點擊選中創建UI界面復選框,完成項目創建。
三、UI界面設置
UI界面如下:
| ① | label_photo | QLabel | / |
| ② | slider | QSlider | minimum:0;maximum:255; |
四、主程序實現
4.1 widget.h頭文件
頭文件中需要聲明滑動條移動槽函數:
右鍵——>滑動條——>sliderMoved:
我這里是:
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~255p1.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,以上便是本文的全部內容了,如果對你有所幫助,記得點個贊喲~
總結
以上是生活随笔為你收集整理的Qt实战案例(54)——利用QPixmap设计图片透明度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于优先数系选择分压电阻
- 下一篇: 【项目】P2P文件快传