QPainter在使用时需要使用构造函数,立马指定在哪个控件上进行绘制
[explicit] QPainter::QPainter(QPaintDevice *device)
画点
- 可以1次画1个点

//准备4个点
QPoint points[4]{
QPoint(10, 80),
QPoint(20, 10),
QPoint(80, 30),
QPoint(90, 70) };
//一次画1个点
painter.drawPoint(points[1]);
- 也可以一次性画多个点

//准备4个点
QPoint points[4]{
QPoint(10, 80),
QPoint(20, 10),
QPoint(80, 30),
QPoint(90, 70) };
//一次画多个点
painter.drawPoints(points,4);
画线
两个点确定一条线
- 1次画1条

//准备4个点
QPoint points[4]{
QPoint(10, 80),
QPoint(20, 10),
QPoint(80, 30),
QPoint(90, 70) };
//画一条线
painter.drawLine(points[0],points[2]);
- 1次画多条

//准备4个点
QPoint points[4]{
QPoint(10, 80),
QPoint(20, 10),
QPoint(80, 30),
QPoint(90, 70) };
//一次画多条线,直接使用初始化列表{}
painter.drawLines({QLineF(points[0],points[1]),QLineF(points[2],points[3])});
画多线段(Polyline)
相关API
//带F为小数版本
// 参1:点的数组,参2:点的个数
void drawPolyline(const QPointF *points, int pointCount)
// 参数:多边形
void drawPolyline(const QPolygonF &points)
//整数版本
void drawPolyline(const QPoint *points, int pointCount)
void drawPolyline(const QPolygon &points)

//准备4个点
QPoint points[4]{
QPoint(10, 80),
QPoint(20, 10),
QPoint(80, 30),
QPoint(90, 70) };
painter.drawPolyline(points,4);
//也可以这样
//painter.drawPolyline(QPolygon({QPoint(100, 80),QPoint(110, 10),QPoint(220, 10)}));
画多边形(Polygon)
相关API
void drawPolygon(const QPointF *points,
int pointCount,
Qt::FillRule fillRule = Qt::OddEvenFill);
void drawPolygon(const QPolygonF &points,
Qt::FillRule fillRule = Qt::OddEvenFill);
void drawPolygon(const QPoint *points,
int pointCount,
Qt::FillRule fillRule = Qt::OddEvenFill);
void drawPolygon(const QPolyg

最低0.47元/天 解锁文章
2389





