QT界面绘图
1.paintEvent事件
1.1 只能在该事件内进行绘图
1.2 该事件会在改变窗口大小,调用update()函数时进行刷新。
1.3 需要加头文件#include
1.4 需要在内创建一个QPainter类的对象才能进行绘图:
QPainter p(this);this表示在该窗口绘图。
2.画线条
2.1 使用方法p.drawLine
2.2 直接传参:
p.drawLine(10,10,100,100);
2.3 先使用QLine(QLineF)类创建线条,在画线
QLineF line(10.5,12.8,100.9,110.2);
QLine line2(120,100,200,200);
p.drawLine(10,10,100,100);
p.drawLine(line);
p.drawLine(line2);
3.画矩形
3.1 使用方法p.drawRect
3.2 直接传参:
p.drawRect(10,10,200,200);
3.3 先使用QRect(QRectF)类创建矩形,在传参画矩形
QRectF rectangle(10.0,10.0,width()-20,height()-40);
p.drawRect(rectangle);
4.画圆,椭圆
4.1 使用方法p.drawEllipse,参数需要的是矩形,画的是矩形的内接椭圆,如果矩形为正方形,则画的是圆形。
4.2 直接传参:
p.drawEllipse(10,10,20,20);
4.3 先使用先使用QRect(QRectF)类创建矩形,在传参画矩形的内接椭圆
QRectF rectangle(10.0,10.0,width()-20,height()-40);
p.drawEllipse(rectangele);
5.画扇形
5.1 使用方法p.drawPie 参数为三个,分别是椭圆的外接矩形,起始角度(三点钟方向为0°,逆时针计算),和转过的角度。
5.2 定义参数
QRectF rectangle(10.0,10.0,width()-20,height()-40);
int startAngle = 30 * 16 ;
int spanAngle = 120 * 16;
p.drawPie(rectangle,startAngle,spanAngle);
6.改变线条和填充
6.1 定义画笔对象和填充对象
QPen pen;
QBrush brush;
6.2 设置画笔的粗细和填充的方式及颜色
pen.setColor(QColor(0,255,255,255));
pen.setWidth(2);
brush.setColor(Qt::black);
brush.setStyle(Qt::CrossPattern);
6.3 关键是要将画笔和填充和QPainter对象绑定
p.setBrush(brush);
p.setPen(pen);