void MainWindow::paintEvent(QPaintEvent *event)
{
/* 画圆 */
QRectF rect_ellipse(100.0, 100.0, 80.0, 80.0);
QPainter painter(this);
painter.setPen(Qt::blue);
painter.drawEllipse(rect_ellipse);
/* 画字 */
painter.setFont(QFont("Arial", 50));
painter.drawText(rect(), Qt::AlignCenter, "关于");
/* 画多边形 */
QRectF rect_angle(100.0, 20.0, 80.0, 60);
int start_angle = 30 * 16;
int span_angle = 120 * 16;
painter.drawArc(rect_angle, start_angle, span_angle);
QPointF points[4] = {
QPointF(10.0, 80.0),
QPointF(20.0, 10.0),
QPointF(80.0, 30.0),
QPointF(90.0, 70.0),
};
painter.drawConvexPolygon(points, 4);
/* 画线 */
QLineF line(QPoint(0, 0), QPoint(100.0, 100.0));
painter.drawLine(line);
QPointF points_1[3] = {
QPointF(110.0, 180.0),
QPointF(120.0, 110.0),
QPointF(180.0, 130.0),
};
painter.drawPolyline(points_1, 3);
/* 画矩形 */
QRectF rectangle(200.0, 20.0, 80.0, 60.0);
painter.drawRect(rectangle);
/* 画圆角矩形 */
QRectF rectangle_1(200.0, 120.0, 80.0, 60.0);
painter.drawRoundedRect(rectangle_1, 15.0, 15.0);
/* 画单个点 */
QPen pen;
pen.setWidth(6);
pen.setColor(Qt::red);
painter.setPen(pen);
painter.drawPoint(200, 200);
/* 画多个点 */
QPointF point[10];
painter.setPen(pen);
for (int i = 0; i < 10; ++i) {
point[i].setX(2.0 + i * 10);
point[i].setY(130.0);
}
painter.drawPoints(point, 10);
/* 画单个直线 */
pen.setWidth(5);
pen.setColor(Qt::red);
painter.setPen(pen);
painter.drawLine(rect().topLeft(), rect().bottomRight());
/* 画圆点 */
painter.setPen(QColor(Qt::transparent));
painter.setBrush(QBrush(Qt::red));
painter.drawEllipse(100,250,10,10);
QWidget::paintEvent(event);
}