您的位置:首页 > 编程语言 > Qt开发

Qt界面简单绘图学习笔记

2017-09-10 21:59 411 查看

QT界面绘图

1.paintEvent事件

1.1 只能在该事件内进行绘图
1.2 该事件会在改变窗口大小,调用update()函数时进行刷新。
1.3 需要加头文件#include<QPainter>
1.4 需要在内创建一个QPainter类的对象才能进行绘图:
QPainter p(this);this表示在该窗口绘图。


2.画线条

2.1 使用方法p.drawLine
2.2 直接传参:


p.drawLine(10,10,100,100);//前两个参数表示前一个点的坐标,后两个参数表示下一个点的x和y坐标。


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);//前两个参数表示矩形左上角顶点的x和y坐标。后两个参数代表矩形的宽度和高度。


3.3 先使用QRect(QRectF)类创建矩形,在传参画矩形


//参数为浮点数,width()和height()方法能获取到当前窗口的宽度和高度,所以该矩形能随着窗口大小动态变化。
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 ;//起始角度,单位为1/16度 30 * 16就是30度
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绑定一个填充对象brush
p.setPen(pen);//给p绑定一个指定的画笔pen
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt