python - Python - Tkinter - 在画布中撤消
问题描述
我的代码从二进制文件中读取,将十六进制转换为图像并将它们放置到画布上。
我可以单击画布上的单个图块并正确更改它。但我现在知道我绝对需要一个撤消命令(如 common CRTL+Z
)。
所以我创建了一个stack_list=[]
. 在我clickA
的函数中,即更改所选图块的函数,我插入了以下代码:
stack_list.append(clickA)
如果我运行,print(stack_list)
我会获得[<function clickA at 0x00000226B0CA9CA0>]
.
然后我写了另一个函数:
def undo():
if not stack_list:
return
previous = stack_list.pop(-1)
print(stack_list)
并将其附加到按钮上。它似乎有效,因为print(stack_list)
给了我[]
但原始状态没有恢复。
有可能获得原始状态而不必“伪造原始状态”(即通过将原始图像存储到变量中然后将其回调)?
解决方案
推荐阅读
- python-3.x - 使用 python 连接到 AWS RDS Postgres 数据库
- haskell - 什么是函数类型
- javascript - 代码在一系列 for 循环中卡住了,我不知道为什么
- node.js - 与 Nodejs Websocket 同步发送消息
- visual-studio - 如何在我的 Visual Studio 中升级 appium
- android - 为什么使用 Glide 从 Firebase 商店加载图像如此缓慢?
- react-native - 不变违规元素类型无效预期字符串反应本机
- c# - URL 匹配正则表达式模式
- python - 如何使用python分隔用连字符分隔的负浮点数?
- excel - 使用VBA将Excel工作表中多列中的第1行复制到多行