내 응용 프로그램 용 풍선 위젯을 만들었습니다. 문제는 위젯의 끝이 들쭉날쭉 해져서 내가 뭘 잘못하고 있는거야?Qt 풍선 위젯 마스크
void BalloonWidget::paintEvent(QPaintEvent *)
{
QVector<QPointF> vertices;
vertices << QPointF(0, 0)
<< QPointF(width(), 0)
<< QPointF(width(), height() * 0.8)
<< QPointF(width() * 0.60, height() * 0.8)
<< QPointF(width() * 0.5, height())
<< QPointF(width() * 0.40, height() * 0.8)
<< QPointF(0, height() * 0.8);
balloonPoly = QPolygonF(vertices);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setRenderHint(QPainter::HighQualityAntialiasing, true);
painter.setBrush(QBrush(backgroundColor));
QRegion maskRegion(balloonPoly.toPolygon(), Qt::WindingFill);
painter.drawPolygon(balloonPoly);
setMask(maskRegion);
}
당신은 jaggedness가 앤티 앨리어싱에 의한 것이 아니라 오른쪽에서 기본적으로 QWidget이 직사각형 모양을 가지고 있으며 사용자 정의 모양을 얻기 위해 다각형으로 덮여 있지 않은 영역을 마스크해야합니다. 그렇지 않으면 사각형이 그려진 다각형이 있습니다. – RobRobRob