日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt实战案例(54)——利用QPixmap设计图片透明度

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt实战案例(54)——利用QPixmap设计图片透明度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 一、項目介紹
    • 二、項目基本配置
    • 三、UI界面設置
    • 四、主程序實現
      • 4.1 widget.h頭文件
      • 4.2 widget.cpp源文件
    • 五、效果演示

一、項目介紹

本文介紹利用QPixmap設計圖片透明度,可以看到拖動下方進度條,用于控制上方圖片的透明度。

二、項目基本配置

新建一個Qt案例,項目名稱為“TransparencyTest”,基類選擇“QWidget”,點擊選中創建UI界面復選框,完成項目創建。

三、UI界面設置

UI界面如下:

序號名稱類型屬性
label_photoQLabel/
sliderQSliderminimum: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~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设计图片透明度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。