Форум сайта python.su
Собственно, как создаётся механизм отмены действия и возврата к нему в PyQt4?
Офлайн
Офлайн
Все есть в документации Qt - http://doc.qt.nokia.com/4.7-snapshot/qundo.html
Вкратце.
На каждое действие создается класс унаследованный от QUndoCommand, в котором нужно переопределить методы redo и undo.
Код из одного проекта:
class RotatePointer(QUndoCommand): def __init__(self, item, oldangle, newangle): QUndoCommand.__init__(self, tr("Rotate viewpointer")) self.item = item self.newangle = newangle self.oldangle = oldangle def redo(self, *args, **kwargs): self.item.setRotation(self.newangle) def undo(self, *args, **kwargs): self.item.setRotation(self.oldangle)
self.undo_stack = QUndoStack() ... self.undo_stack.push(SomeCommand(...))
Отредактировано reclosedev (Май 13, 2012 13:56:02)
Офлайн
Спасибо всем ответившим!
Офлайн