【发布时间】:2019-07-23 09:05:12
【问题描述】:
我正在尝试制作某种绘图工具,可以在 tkinter 上绘制预定义的形状,例如线条、框等。
问题1:我想添加重做-撤消按钮,这样当我撤消时,最后一个对象将被删除,重做时,最后一个对象将被添加。我以为我可以在创建时标记每个对象并将每个对象的标签存储在列表中,但我找不到合理的解决方案。
问题2:我如何才能添加最后删除的对象?如果我通过标签-撤消事件-删除,据我所知,数据将丢失。我猜我不应该丢失数据。
下面的伪代码示例:
line=create_line(...)
...
#tag should be assigned for further access
...
stack.append(tag)
...
#deleting by tag in undo event
undo(event): stack.pop()
#adding by tag in redo event
redo(event):
stack.append(lasttag)
#problem2: adding the last object
我不想画出所有的边框,但为了清楚起见,我添加了这些线条。建议的解决方案可以在更大、更灵活的环境中回答问题。提前致谢
【问题讨论】:
标签: tkinter tags tkinter-canvas