在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函数浅析相关推荐

  1. tensorflow保存和恢复模型saver.restore

    1.本文只对一些细节点做补充,大体的步骤就不详述了 2.保存模型 ① 首先我使用的是tensorflow-gpu 1.4.0 ② 这个版本生成的ckpt文件是这样的: 其中.meta存放的是网络模型和 ...

  2. QPainter 的状态保存与恢复

    实现这样的一个程序,把 QPainter 的坐标原点从左上角移动到 (100, 100),然后画出坐标轴,接下来顺时针旋转坐标轴 45 度,设置画笔,画刷,字体,画一个矩形和字符串,最后恢复 QPai ...

  3. canvas 的save()和restore()方法

    应用到画布上面的效果是可以累积的,因而就可以利用几个简单的函数来"组合"出效果来.例如,在向屏幕上绘制之前,可能会有一艘飞船需要旋转.变换 和缩放.因为所有效果都对画布起作用,所以 ...

  4. canvas save()和canvas restore()状态的保存和恢复使用方法及实例

    canvas.save()用来保存先前状态的 canvas.restore()用来恢复之前保存的状态 注:两种方法必须搭配使用,否则没有效果 <!DOCTYPE html> <htm ...

  5. Android画布的保存,Android canvas用法介绍之save()和restore()

    一. 首先讲一下canvas的save 和 restore功能. 这是canvas很有魅力的一个部分. onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布. 在onDraw方 ...

  6. Tensorflow: 保存和复原模型(save and restore)

    报错: is not valid checkpoint 解决: module_file = tf.train.latest_checkpoint(diag_obj.save_path) saver.r ...

  7. Tensorflow |(5)模型保存与恢复、自定义命令行参数

    Tensorflow |(1)初识Tensorflow Tensorflow |(2)张量的阶和数据类型及张量操作 Tensorflow |(3)变量的的创建.初始化.保存和加载 Tensorflow ...

  8. [ATF]-ARM级别/异常/状态切回时候的寄存器保存与恢复

    文章目录 1.save/restore函数的定义 (1).el1_sysregs_context_save //保存系统寄存器 (2).el1_sysregs_context_restore //恢复 ...

  9. tensorflow 1.0 学习:模型的保存与恢复(Saver)

    将训练好的模型参数保存起来,以便以后进行验证或测试,这是我们经常要做的事情.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf. ...

最新文章

  1. 聊聊flink的HistoryServer
  2. java media_unmount file_(20120801)android文件的读写SD卡总结
  3. thinkphp 相关
  4. linux 命令学习 —— 硬件外设管理(dmesg、lsusb)
  5. ABAP术语-V1 Module
  6. 在vscode中使用ajax,vscode中的ajax片段,
  7. java项目中的pom依赖在哪_java – 如何包含pom项目中的所有模块
  8. JAVA怎么接收长字符串_【Java】Java中常用的String方法
  9. 复杂性应对之道 - 领域建模
  10. 前端工程师如何提升能力 提高效率有哪些方法
  11. ddos应急处理_DDOS攻击应急响应预案
  12. chromium浏览器定制 | 高匿名爬虫随机指纹
  13. FUZ 1759 Super A^B mod C (指数循环节/模板)
  14. linux日志查看命令
  15. DockOne微信分享(一二八):容器如何监控?
  16. linux下聊天工具的安装
  17. iperf3 x86和Arm版本安装及用法
  18. android ARouter源码分析
  19. 平面设计界的九阳真经
  20. html 之一个简单的导航栏

热门文章

  1. 最简单DIY基于STM32的远程控制电脑系统②(无线遥杆+按键控制)
  2. 实时计算业务介绍实时日志分析
  3. 现代统计的思想飞跃,因果推断!
  4. PHP与SEO,应用curl及正则获取搜狗搜索相关关键词
  5. 基于html+css+js的图书管理系统
  6. 英特尔采用 LLVM 作为最新 C/C++ 编译器
  7. 我的时间管理之一 ——做好规划
  8. 【算法】红黑树插入数据(变色,左旋、右旋)(二)
  9. Origin开源替代工具 ——QtiPlot和SciDAVis
  10. 对云计算,大数据和人工智能的浅谈(三)