Qt‘s 撤销框架(Qt‘s Undo Framework)

发布时间:2024年01月23日

一、开篇序言

我们常常有这样的业务场景,需要支持撤回的动作(即 undo)。如果让你来设计,聪明的你肯定也能立即想到解决问题的办法,对,将操作的 command { 对象,指令,属性 } 保存到一个容器中。

  • 如果是仅需要单步撤销, 使用栈容器 保存command,动作执行即指令入栈, 动作撤销即指令出栈。入栈 对应的也就是对象的创建和渲染;出栈即对象属性回溯与旧状态渲染,可能也包含着对象的销毁和内存释放的过程。
  • 如果是要支持一次撤销多个步骤,使用list会比较实用。不过,多步骤的撤销,设计的业务逻辑也会更加复杂一些。在此科普篇中,不进行赘述。

那么,我们懂了基本的实现原理,是时候该自己出手手撸一套了么?还不是时候,本系列我们先从学习的角度,全面的了解Qt的Undo Framework,学会使用,然后再从源码出发,剖析内部实现。最后,就可以自己上手了。

二、初识 Qt's Undo Framework

2.1 关键词

QUndoCommandQUndoStackQUndoGroupQUndoView


  • QUndoStack 可存储多条QUndoCommand
  • <
文章来源:https://blog.csdn.net/weixin_39568531/article/details/135753352
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。