2017-11-17 3 views
1

실제로 저는 수평으로 만 움직일 수있는 QPolygonF를 가지고 있으며, 그럴 경우 처음 지점에서 현재까지의 그림자 효과를 그립니다. 그건 잘 작동하지만, 나는 너무 빨리 움직이지 않을 때 폴리곤을 너무 빨리 움직이면 올바르게 사라지는 잔여 효과를 얻거나 일부 그림자 포인트가 그림자에 나타납니다. 여기 QGraphicsEffect 정확하게 새로 고침하지 않습니다.

가 해결 된 내 코드의 효과

void ShadowEffect::draw(QPainter *painter) 
{ 
    QBrush b(QColor(0,0,0,128)); // adjust color and alpha to taste 
    painter->setBrush(b); 
    painter->setPen(QPen(QColor(0,0,0,128))); 
    painter->drawRect(0, 0, *dist, 10+slider->size().height()*1.5); 
    drawSource(painter); 
} 

What it looks like

답변

0

입니다. 장면이 제대로 업데이트되지 않아서 다각형을 움직일 때마다 호출하는 방아쇠를 클래스에 넣었습니다.

connect(myPolygon, &MyPolygon::valueChanged, [scene](){scene->update();}); 
관련 문제