• Qt QPainter实现按钮添加半透明图片


    效果图:

    代码:

    void InterfaceSwitch::paintEvent(QPaintEvent *)
    {
        //实现带图片的半透明背景
        QPixmap covert_pixmap(str_image);//str_image是图片位置
        QPixmap pixmap(covert_pixmap.width(), covert_pixmap.height());
        pixmap.fill(Qt::transparent);
    
        QPainter painter_pixmap(&pixmap);
        QPoint start_point = this->rect().topLeft();
        QPoint end_point = this->rect().bottomRight();
    //    qDebug()<<"pix.width="<<covert_pixmap.width()<<"pix.heigth="<<covert_pixmap.height();
    //    qDebug()<<"topLeft="<<this->rect().topLeft()<<"bottomRight="<<this->rect().bottomRight();
        //QLinearGradient进行渐变色设置
        QLinearGradient linear_gradient(start_point, end_point);
        linear_gradient.setColorAt(0.5, QColor(255, 255, 255, 150));
    
        painter_pixmap.setRenderHint(QPainter::Antialiasing, true);//抗锯齿
        painter_pixmap.fillRect(this->rect(), QBrush(linear_gradient));//渐变色
        painter_pixmap.setCompositionMode(QPainter::CompositionMode_SourceIn);//复合模式
        painter_pixmap.drawPixmap(0, 0, covert_pixmap);
    
        QRect   rec = this->rect();
        rec.setX(rec.x()-6);
        rec.setY(rec.y()-6);
        painter_pixmap.drawText(rec, Qt::AlignCenter,"温度");//显示的文字
        painter_pixmap.end();
    
        QPainter painter2(this);
        painter2.drawPixmap(0, 0, pixmap);
    
    }
  • 相关阅读:
    关于tp5框架的安装与配置
    关于php的前台,后台的基本写法
    提取大段文字中的特殊段落
    UGUI 打图集
    事件管理
    tornado install
    Install aws cli
    code migrate
    Codecommit
    Curl elasticsearch
  • 原文地址:https://www.cnblogs.com/shuoguoleilei/p/13306052.html
Copyright © 2020-2023  润新知