私のアプリケーション用のバルーンウィジェットを作成しました。問題は、ウィジェットの先端がギザギザになっているので、何が間違っているのですか?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);
}
あなたは右のギザギザがアンチエイリアスではなく、長方形の形状を有するQWidgetのデフォルトによって引き起こされていないで、私はカスタムシェイプを取得するためにポリゴンによってカバーされていない領域をマスクする必要が今では完全に滑らかです。それ以外の場合は、ポリゴンを描画した矩形があります。 – RobRobRob