在简单的Qt5小部件代码中,我如何使用"添加"混合?

时间:2015-08-01 12:05:43

标签: c++ qt5 qpainter blending

在我的小部件中,我想画一个亮点。目前它只是带有一些 alpha 的白点,但为了更正,它应该使用添加剂混合进行渲染。但是,我很难在 Qt5小部件代码中找出如何执行此操作。

有谁知道怎么做?

这是我的paintEvent():

void LightWidget::paintEvent(QPaintEvent *){
    WWMETHODGATE();
    QPainter painter(this);
    painter.setPen(Qt::NoPen);
    painter.setRenderHint(QPainter::Antialiasing);
    QColor black("black");
    QColor white("white");
    painter.setBrush(black);
    int m=2,m2=m*2;
    int w=width()-1, h=height()-1;
    int w2=w/2;
    int h2=h/2;
    int dim=std::min(w,h)-m2-2;
    int a=dim/2,b=a*2;
    painter.drawEllipse(w2-a-m,h2-a-m,b+m2,b+m2);
    painter.setRenderHint(QPainter::Antialiasing);

    painter.setBrush(on?color:color.darker(300));
    painter.drawEllipse(w2-a,h2-a,b,b);
    white.setAlpha(192);
    painter.setBrush(white);
    int hl=b/4;
    //This is the highlight
    painter.drawEllipse(w2+a/2-hl, h2-a/2-hl,hl*2,hl*2);
}

0 个答案:

没有答案