操作系统: 统信UOSv20
Qt版本: 5.11.3
一,简单介绍
QPainter提供了高度优化的功能来完成大多数图形GUI程序所需的工作。它可以画从简单的线条到复杂的形状,如馅饼和和弦。它还可以绘制对齐的文本和像素图。通常,它会绘制一个“自然”坐标系,但也可以进行视图和世界变换.
项目 | 内容 |
---|---|
Header | QPainter |
qmake | QT += gui |
二,常用方法
1. 常用方法
方法 | 功能 |
---|---|
drawArc() | 绘制圆弧 |
drawChord() | 绘制弦 |
drawConvexPolygon() | 绘制凸多边形 |
drawEllipse() | 绘制椭圆 |
drawLine() | 绘制线条 |
drawPie() | 绘制扇形 |
drawPoint() | 绘制点 |
drawPolygon() | 绘制多边形 |
drawRect() | 绘制矩形 |
drawPolyline() | 绘制折线 |
drawRoundedRect() | 绘制圆角矩形 |
drawText() | 绘制文本 |
drawPixmap() | 绘制图片 |
三,使用介绍
绘制图形需要先在头文件中声明重绘事件处理函数
protected:
void paintEvent(QPaintEvent *event);
1. 绘制线段
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawLine(50, 50, 400, 50); //x1, y1, x2, y2
painter.setPen(QPen(Qt::red)); //设置画笔颜色为红色
painter.drawLine(QPoint(50, 100), QPoint(400, 100));
painter.setPen(QPen(Qt::blue, 3, Qt::DashLine)); //设置为虚线
painter.drawLine(QPoint(50, 150), QPoint(400, 150));
painter.setPen(QPen(Qt::green, 10, Qt::SolidLine, Qt::RoundCap)); //设置画笔端点风格
painter.drawLine(QPoint(50, 200), QPoint(400, 200));
}
2.绘制矩形
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawRect(50, 50, 100, 50); //x,y,w,h
painter.setBrush(QBrush(Qt::red)); //设置画刷颜色
painter.drawRect(200, 50, 100, 50);
painter.setBrush(QBrush(Qt::blue, Qt::Dense3Pattern)); //设置画刷风格
painter.drawRect(50, 150, 100, 50);
}
3.绘制圆角矩形
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawRoundRect(50, 50, 100, 50);
painter.drawRoundRect(200, 50, 100, 50, 50, 50); //5,6参数指定圆角大小,默认为25
}
4.绘制椭圆
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawEllipse(50, 50, 100, 50); //指定椭圆所在矩形的起始位置和宽高
}