В простом коде виджета Qt5, как я могу рисовать с «добавкой»? смешивание?

В моем виджете я хочу нарисовать подсветку. В настоящее время это просто белая точка с некоторыми альфа, но чтобы быть точным, он должен быть представлен с аддитивное смешивание. Однако мне трудно понять, как это сделать в Код виджета 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);
}

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector