QPainter保存与恢复:save与restore函数浅析


在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状态的存储与在此使用。

以上,给大家以参考,各位加油呀。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM