from PyQt5.QtWidgets import QUndoStack, QUndoCommandclass Test(object):def __init__(self):super().__init__()self.undoStack = QUndoStack() # 存放命令的栈self.undoStack.push(Command()) # 调用push的时候,就会自动调用一次redo方法class Command(QUndoCommand): # 具体的命令,需要重新实现它的redo和undo方法以实现重做和撤销操作def __init__(self):super().__init__()self.m_list = [1, 2]print('原列表', self.m_list)# 重做def redo(self):self.m_list.append(3)print('重做后', self.m_list)# 撤销def undo(self):del self.m_list[-1]print('撤销后', self.m_list)test = Test()
test.undoStack.undo() # 实现撤销操作
test.undoStack.redo() # 实现重做操作
原列表 [1, 2]
重做后 [1, 2, 3]
撤销后 [1, 2]
重做后 [1, 2, 3]Process finished with exit code 0

qt实现撤销和恢复功能相关推荐

  1. 我们常用的撤销和恢复功能,你知道它们使用了什么设计模式吗?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 滴水微澜 来源 | cnblogs.com/z ...

  2. js实现撤销恢复_我们常用的撤销和恢复功能,它们使用了什么设计模式实现吗?...

    现有场景描述: 现在无论是系统自带的键盘还是第三方的键盘一般都自带撤销和恢复功能,你知道它们是用的什么模式实现的吗? 它们用的是命令模式+观察者模式,你答对了吗? 简单科普一下 啥是命令模式(Comm ...

  3. 再涨个姿势,我们常用的撤销和恢复功能,你知道它们使用了什么设计模式实现吗?...

    作者:滴水微澜 cnblogs.com/zhou--fei/p/9905536.html 现有场景描述: 现在无论是系统自带的键盘还是第三方的键盘一般都自带撤销和恢复功能,你知道它们是用的什么模式实现 ...

  4. java 撤销恢复按钮_再涨个姿势,我们常用的撤销和恢复功能,你知道它们使用了什么设计模式实现吗?...

    作者:滴水微澜 现有场景描述:现在无论是系统自带的键盘还是第三方的键盘一般都自带撤销和恢复功能,你知道它们是用的什么模式实现的吗? 它们用的是命令模式+观察者模式,你答对了吗? 简单科普一下 啥是命令 ...

  5. vue实现的一个撤销和恢复功能

    1.有三个表格 2.添加不同得数据 3.在点击撤销时删除最后一条添加的数据,在点击恢复时复原删除的数据 <template><div style="width:1000px ...

  6. js实现撤销恢复功能

    Js实现撤销恢复功能 之前一个项目要自己写个前端插件,其中一个的功能是实现对表格(table)的撤销和恢复功能,在网上百度了一大堆也没有找到合适的方法,后来灵光一闪,想到了一个简单的方法:用数组保存之 ...

  7. java 撤销恢复按钮_java文本的撤销和恢复

    文本的撤销和恢复是通过 addUndoableEditListener(UndoableEditListener listener)这个方法来注册实现的.只要是Document类及其子类都可以注册撤销 ...

  8. Qt Undo Framework学习,实现撤销、重做功能

    0. 引言 在交互应用程序中撤销和重做(Undo/Redo)能力是很重要的.像常见的软件Office,AutoCAD等,有了撤销功能,用户体验更舒服.一般都会使用Command模式来实现这一功能. 1 ...

  9. 撤销 恢复快捷键 Linux,Linux Vim撤销和恢复撤销快捷键用法详解

    使用 Vim 编辑文件内容时,经常会有如下 2 种需求: 对文件内容做了修改之后,却发现整个修改过程是错误或者没有必要的,想将文件恢复到修改之前的样子. 将文件内容恢复之后,经过仔细考虑,又感觉还是刚 ...

最新文章

  1. 史上最大规模 DDoS 攻击,每秒 1720 万次 HTTP 请求
  2. [HAOI2018]染色
  3. mplayer-php,jQuery MPlayer网站音乐播放器插件
  4. 轻松学MVC4.0–2 创建用户列表页面
  5. HDU-5935 Car 逆推 贪心 精度
  6. java中处理打折率_【JAVA300例】13、输入价格判断折扣,switch用法+int留整数方便判断...
  7. CoreAnimation编程指南(七)图层Action
  8. 开源ERP PK 传统ERP_开源ERP商业模式及前景访谈(视频) 转
  9. Android7.1 audio 播放流程(三十五)
  10. 深度学习自学(二十三):CAFFE-TF环境安装问题-兼容多个CUDA
  11. 利用青龙面板自动化跑聚看点脚本
  12. 我推崇的流行唱法:美國Speech Level Singing的介紹和討論(推荐)
  13. 电子商务站点资源收集~~~
  14. 介绍一下PR工具中的blockage
  15. IOS 自动订阅以及恢复购买
  16. vivo 低代码平台【后羿】的探索与实践
  17. Rails的静态资源管理(三)—— 开发环境的Asset Pipelin
  18. 03.20 Linux文件属性
  19. NGUI 动态操作sprite
  20. SQL分组获取记录的第一条数据——PARTITION BY

热门文章

  1. bzoj1816 扑克牌 贪心(不用二分QvQ)
  2. java常用压测工具_几款常用压测工具推荐
  3. WFE and WFI
  4. vue移动端项目概述学习总结
  5. html经典案例pdf,一篇文章学习html【经典案例】
  6. 《黄金时代》与《萧红评传》
  7. 阿里云服务器远程连接账号密码获取方法
  8. 这个开源的黑科技项目太狠了!别乱用,玩玩就好!
  9. 运用小矩阵作为元素构建大矩阵(matlab函数,未详细测试)
  10. SQL Server中遇到的(1行受影响)