Я создал виджет воздушного шара для своего приложения. Проблема в том, что кончик виджета зазубрен, поэтому что я делаю неправильно?Qt ballget widget mask
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);
}
Вы правы, зубчатость не вызывает сглаживание, но по умолчанию QWidget имеет прямоугольную форму, и я должен замаскировать область, не покрытую многоугольником, чтобы получить пользовательскую форму. В противном случае у меня есть прямоугольник с нарисованным в нем многоугольником. – RobRobRob