径向渐变。。。

void MainWindow::paintEvent(QPaintEvent *e)
{
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.translate(250,250);
    int centerX = width()/2;
    int centerY = height() / 2;
    int radial = qMin(centerX,centerY) * 0.8;
    painter.setRenderHints(QPainter::Antialiasing);

    //     纯黑色背景
    painter.setPen(Qt::NoPen);
    painter.setBrush(Qt::black);
    painter.drawRect(-249,-249,width(),height());

    QRadialGradient g;
    // 焦点在内部中心位置
    QColor color = QColor(0,255,0,150).lighter();
    g.setCenter(0,0);
    g.setRadius(250);
    //g = QRadialGradient(0,0 ,250,0,0 ,0.1);
    g.setColorAt(0,QColor(color.red(),color.green(),color.blue(),150));
//    g.setColorAt(0.5,QColor(0,255,0,50));
//    g.setColorAt(0.2,QColor(0,255,0,100));
//    g.setColorAt(0.6,QColor(0,255,0,50));
//    g.setColorAt(0.8,QColor(0,255,0,10));
    g.setColorAt(1,QColor(color.red(),color.green(),color.blue(),10));
    //painter.fillRect(0,0,width(),height(),g);
    painter.setBrush(g);
    painter.drawPie(-249,-249,499,499,0,360*16);

    return QMainWindow::paintEvent(e);
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值