在我的小部件中,我想画一个亮点。目前它只是带有一些 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);
}