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

一、开篇序言

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

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

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

二、初识 Qt's Undo Framework

2.1 关键词

QUndoCommandQUndoStackQUndoGroupQUndoView


  • QUndoStack 可存储多条QUndoCommand
  • <

相关推荐

  1. Qt‘s 撤销框架Qt‘s Undo Framework)

    2024-01-25 14:52:01       35 阅读
  2. Qt 插件框架

    2024-01-25 14:52:01       8 阅读
  3. qt5图形视频框架

    2024-01-25 14:52:01       37 阅读
  4. vim 撤销和恢复

    2024-01-25 14:52:01       41 阅读
  5. git撤销命令大全

    2024-01-25 14:52:01       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-25 14:52:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-25 14:52:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-25 14:52:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-25 14:52:01       20 阅读

热门阅读

  1. Qt容器QVariant

    2024-01-25 14:52:01       35 阅读
  2. 产品面试题2

    2024-01-25 14:52:01       29 阅读
  3. [go] 中介者模式

    2024-01-25 14:52:01       36 阅读
  4. git reset -hard 后,想撤回reset并恢复到reset前的版本

    2024-01-25 14:52:01       35 阅读
  5. git tag的用法详解

    2024-01-25 14:52:01       32 阅读
  6. 数据结构—基础知识(12):二叉树算法补充

    2024-01-25 14:52:01       35 阅读
  7. 阿里云 微消息队列 MQTT使用与部分常见问题处理

    2024-01-25 14:52:01       31 阅读
  8. Mysql 文件导入与导出

    2024-01-25 14:52:01       36 阅读