zoukankan      html  css  js  c++  java
  • 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);
    
    }
  • 相关阅读:
    团队作业第五次——Alpha冲刺
    Alpha冲刺——总结
    冲刺随笔
    冲刺随笔——Day_Nine
    冲刺随笔——Day_Eight
    冲刺随笔——Day_Seven
    冲刺随笔——Day_Three
    团队作业第五次——Alpha冲刺
    第06组 Alpha冲刺(1/6)
    第06组 团队Git现场编程实战
  • 原文地址:https://www.cnblogs.com/shuoguoleilei/p/13306052.html
Copyright © 2011-2022 走看看