QImage img(220, 220, QImage::Format_ARGB32);
img.fill(0);
QPainter painter(&img);
painter.setRenderHints(QPainter::Antialiasing, true);
painter.setRenderHints(QPainter::SmoothPixmapTransform , true);
QPen pen;
int penWidth = 20;
pen.setWidth(penWidth);
pen.setJoinStyle(Qt::RoundJoin);
pen.setColor(Qt::green);
painter.setPen(pen);
int di = (200-penWidth)/2;
int height = (180-penWidth)/2;
QPoint center = img.rect().center();
static const QPointF points[3] = {
QPointF(center.x(), center.y()+height),
QPointF(center.x()-di, center.y()-height),
QPointF(center.x()+di, center.y()-height)
};
painter.drawConvexPolygon(points, 3);
QPen oldPen = painter.pen();
oldPen.setWidth(18);
painter.setPen(oldPen);
static const QPointF linepoints[2] = {
QPointF(center.x(), center.y()-height + penWidth/2 +18),
QPointF(center.x(), center.y()-height + penWidth/2 +18+50)
};
painter.drawConvexPolygon(linepoints, 2);
painter.setBrush(Qt::green);
painter.setPen(Qt::NoPen);
int EllipseR = 20;
painter.drawEllipse(center.x()-EllipseR/2, center.y()-height + penWidth/2 +18+50+26-EllipseR/2, EllipseR, EllipseR);
img.save("test.png");
qt 生成圆角三角形
于 2022-08-23 13:29:15 首次发布