弧线

QRect rect(w/4, h/4, w/2, h/2);
int startAngle = 90 * 16;
int spanAngle = 90 * 16;
painter.drawArc(rect, startAngle, spanAngle);

image.png

QRect rect(w/4, h/4, w/2, h/2);
int startAngle = 90 * 16;
int spanAngle = 90 * 16;
painter.drawChord(rect, startAngle, spanAngle);

image.png

多边形

QPoint points[4]{
    QPoint(5*w/12, h/4),
    QPoint(3*w/4, 5*h/12),
    QPoint(5*w/12, 3*h/4),
    QPoint(w/4, 5*w/12)
};
painter.drawConvexPolygon(points, 4);

image.png

椭圆

QRect rect(w/4, h/4, w/2, h/2);
painter.drawEllipse(rect);

image.png

直线

QLine line(w/4, h/4, w/2, h/2);
painter.drawLine(line);

image.png

一批直线

QRect rect(w/4, h/4, w/2, h/2);
QVector<QLine> lines;
lines.append(QLine(rect.topLeft(), rect.bottomRight()));
lines.append(QLine(rect.bottomLeft(), rect.topRight()));
lines.append(QLine(rect.topLeft(), rect.bottomLeft()));
lines.append(QLine(rect.topRight(), rect.bottomRight()));
painter.drawLines(lines);

image.png

QPainterPath 自定义的路线

QRect rect(w/4, h/4, w/2, h/2);
QPainterPath path;
path.addEllipse(rect);
path.addRect(rect);
painter.drawPath(path);

image.png

画扇形

QRect rect(w/4, h/4, w/2, h/2);
int startAngle = 40 *16;
int spanAngle = 120 * 16;
painter.drawPie(rect, startAngle, spanAngle);

image.png