bin auf der Suche nach einen UndoManager für Tkinter - als Ausangsbasis könnte ja man den UndoManager von @Rekrul im Beitrag http://www.python-forum.de/viewtopic.ph ... 37#p283437 verwenden:
Code: Alles auswählen
class Command:
def undo(self): pass
def redo(self): pass
class UndoManager:
def __init__(self, appmenu):
"""
:param appmenu: {tkinter menu object}
"""
self.menu = appmenu.bearbeiten
self.undos = []
self.redos = []
def check_menu(self):
"""Menueintraege 'Undo' und 'Redo' (bzw. 'Rückgängig' und
'Wiederholen') bearbeiten, so dass die Einträge
Informationen erhalten, was rückgängig gemacht bzw.
wiederholt wird. Zudem natürlich den Callback auf die neue
Aktion umsetzen.
"""
# TODO: aber wie???
self.menu.entryconfig(???)
def undo(self):
command = self.undos.pop()
command.undo()
self.redos.append(command)
self.check_menu()
def redo(self):
command = self.redos.pop()
command.redo()
self.undos.append(command)
self.check_menu()
def execute(self, command):
command.redo()
self.undos.append(command)
self.redos = []
self.check_menu()