Qt 2D绘图学习

一、基本绘制和填充

1.QPainter对象

先创建一个QPainter对象,该对象必须在开始绘制时指定绘制设备,可以在构造时指定,也可以使用如下方式:

 	QPainter painter;
 	painter.begin(this);
 	painter.drawLine(QPoint(0,0),QPoint(100,100));
 	painter.end;

2.画笔或画刷

画笔QPen参数

	const QBrush &brush	//画刷
	qreal width					//线宽
	Qt::PenStyle				//画笔风格
	Qt::PenCapStyle			//画笔端点风格
	Qt::PenJoinStyle			//画笔连接风格

QBrush提供了画刷来填充图形,可以配合QGradient类指定渐变填充

	QLinearGradient linearGradient(p1, p2)//线性渐变,指定开始点和结束点
		linearGradient.setSpread()//指定渐变区域以外的扩散方式
		
	QRadialGradient radialGradient(p1, r, p2)//辐射渐变,指定圆心,半径,焦点

	QConicalGradient conicalGradient(p1, a)//锥形渐变,指定中心点和角度

二、坐标系统

1.基本变换

	scale()			//缩放
	rotate()		//顺时针旋转
	translate()	//平移坐标系统
	shear()		//围绕圆点扭曲坐标系统

	QPainter::save()		//储存变换矩阵
	QPainter::restore()	//将变换矩阵弹出

2.窗口和视口

视口:物理坐标下指定的一个任意矩形;
窗口:逻辑坐标下的相同矩形;

三、其他绘制

1.绘制路径

	QPainterPath path;
	path.moveTo(x, y);	//移动当前点
	path.lineTo(x, y);	//绘制直线
	path.cubicTo(p1, p2, p3); //绘制三次贝塞尔曲线
	path.addEllipse(p1, a, b); //向路径中添加一个椭圆

2.绘制图像

	QImage//提供与硬件无关的图像表示方法,可以直接访问像素数据,也可以作为绘图设备
	QPixmap//作为一个绘图设备将图像显示在屏幕上,其中像素有底层的窗口系统来进行管理
	QPicture//可以记录和重演QPainter命令
发布了10 篇原创文章 · 获赞 1 · 访问量 2674

猜你喜欢

转载自blog.csdn.net/weixin_39832367/article/details/86581983
今日推荐