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状态的存储与在此使用。
以上,给大家以参考,各位加油呀。
QPainter保存与恢复:save与restore函数浅析相关推荐
- tensorflow保存和恢复模型saver.restore
1.本文只对一些细节点做补充,大体的步骤就不详述了 2.保存模型 ① 首先我使用的是tensorflow-gpu 1.4.0 ② 这个版本生成的ckpt文件是这样的: 其中.meta存放的是网络模型和 ...
- QPainter 的状态保存与恢复
实现这样的一个程序,把 QPainter 的坐标原点从左上角移动到 (100, 100),然后画出坐标轴,接下来顺时针旋转坐标轴 45 度,设置画笔,画刷,字体,画一个矩形和字符串,最后恢复 QPai ...
- canvas 的save()和restore()方法
应用到画布上面的效果是可以累积的,因而就可以利用几个简单的函数来"组合"出效果来.例如,在向屏幕上绘制之前,可能会有一艘飞船需要旋转.变换 和缩放.因为所有效果都对画布起作用,所以 ...
- canvas save()和canvas restore()状态的保存和恢复使用方法及实例
canvas.save()用来保存先前状态的 canvas.restore()用来恢复之前保存的状态 注:两种方法必须搭配使用,否则没有效果 <!DOCTYPE html> <htm ...
- Android画布的保存,Android canvas用法介绍之save()和restore()
一. 首先讲一下canvas的save 和 restore功能. 这是canvas很有魅力的一个部分. onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布. 在onDraw方 ...
- Tensorflow: 保存和复原模型(save and restore)
报错: is not valid checkpoint 解决: module_file = tf.train.latest_checkpoint(diag_obj.save_path) saver.r ...
- Tensorflow |(5)模型保存与恢复、自定义命令行参数
Tensorflow |(1)初识Tensorflow Tensorflow |(2)张量的阶和数据类型及张量操作 Tensorflow |(3)变量的的创建.初始化.保存和加载 Tensorflow ...
- [ATF]-ARM级别/异常/状态切回时候的寄存器保存与恢复
文章目录 1.save/restore函数的定义 (1).el1_sysregs_context_save //保存系统寄存器 (2).el1_sysregs_context_restore //恢复 ...
- tensorflow 1.0 学习:模型的保存与恢复(Saver)
将训练好的模型参数保存起来,以便以后进行验证或测试,这是我们经常要做的事情.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf. ...
最新文章
- 聊聊flink的HistoryServer
- java media_unmount file_(20120801)android文件的读写SD卡总结
- thinkphp 相关
- linux 命令学习 —— 硬件外设管理(dmesg、lsusb)
- ABAP术语-V1 Module
- 在vscode中使用ajax,vscode中的ajax片段,
- java项目中的pom依赖在哪_java – 如何包含pom项目中的所有模块
- JAVA怎么接收长字符串_【Java】Java中常用的String方法
- 复杂性应对之道 - 领域建模
- 前端工程师如何提升能力 提高效率有哪些方法
- ddos应急处理_DDOS攻击应急响应预案
- chromium浏览器定制 | 高匿名爬虫随机指纹
- FUZ 1759 Super A^B mod C (指数循环节/模板)
- linux日志查看命令
- DockOne微信分享(一二八):容器如何监控?
- linux下聊天工具的安装
- iperf3 x86和Arm版本安装及用法
- android ARouter源码分析
- 平面设计界的九阳真经
- html 之一个简单的导航栏