在Qt中进行图像绘制,需要用到QPainter对象,这个对象可以帮助我们完成一些简单功能的绘制,比如说绘制线条,绘制折线等简单的绘制功能。
QPainter对象,有两个很有意思的函数,这两个函数相互之间起作用,下面,我们就来看一下这两个函数,save函数与restore函数。
painter->save();//保存当前Painter状态 transform.translate(m_point.x(), m_point.y()); //沿着x坐标系移动第一个变量,沿着y坐标系移动第二个变量 transform.rotate(-m_realAngle); //绕轴逆时针旋转变量的角度 transform.translate(-m_point.x(), -m_point.y()); //和上面移动相反,返回原先的移动 painter->setTransform(transform, true); //第二个变量为true,故合并指定的变换与现在的变换 painter->setPen(pen);//设置画笔 painter->setBrush(brush);//设置画刷 painter->drawPolygon(polygon);//将向量导入,绘制折线 painter->restore();//恢复上面保存的状态
在这里的图像绘制,调用了这两个函数,在一开始,调用save函数,保存此时QPainter对象的状态,然后,下面开始进行一系列图像绘制,程序中写下了注释,大家可以参考,这只是程序里的一小片段。而在绘图结束,再调用restore函数,这里的作用是恢复QPainter对象的状态为之前保存时候的状态。
在绘制复杂图形时候,我们常用这个功能,来保证图形的正确绘制,不因为多次变换QPainter属性导致绘图错误,只需要调用这一组函数,就能实现QPainter状态的存储与在此使用。
以上,给大家以参考,各位加油呀。