Название: QUndoCommand, QUndoStack, ets. Отправлено: XXCoder от Ноябрь 18, 2006, 00:47 Кто-нибудь пробовал использовать классы QUndoCommand, QUndoStack & ets. при работе с графическими объектами? Поделитесь исходниками пожалуста! 4.2.1)) :oops:
Название: QUndoCommand, QUndoStack, ets. Отправлено: Tonal от Ноябрь 18, 2006, 10:28 А в чём проблем-то?
Название: QUndoCommand, QUndoStack, ets. Отправлено: XXCoder от Ноябрь 18, 2006, 12:53 непонятно как добавлять объект... тот который рисуется в паинт ивенте... это все равно что писать заново получается...
Название: QUndoCommand, QUndoStack, ets. Отправлено: Tonal от Ноябрь 20, 2006, 10:51 Для реализации отката обычно используются 2 схемы запись комманд и запись состояний.
В первом случае мы запоминаем действие и его аргументы, во втором - состояние системы до начала действия. Первая схема обычно бывает менее требовательна к памяти, просто реализуются сохранение/восстановление истории и распространение между экземплярами приложения и/или сеансами. Минусы: Для действия может не существовать обратного, тормоза с групповой отменой. Вторая схема всегда позволяет быстро откатиться к любой выбранной точке. Минусы: Обычно требуется много памяти, не всегда очевидна связь с действиями, плохо поддаётся сохранению/распространению. В текстовых процессорах обычно применяется первая. В графических редакторах - вторая. Название: QUndoCommand, QUndoStack, ets. Отправлено: XXCoder от Ноябрь 20, 2006, 11:08 ага, те данные классы не подойдут для работы с графикой... там работа как раз с командами как я поняла...
Название: QUndoCommand, QUndoStack, ets. Отправлено: Tonal от Ноябрь 20, 2006, 11:40 Если все команды в графике обратимые - можно использовать запись комманд.
Можно, так же использовать гибридный вариант - в команде запоминается исходное состояние и действие с аргументами над ним. Можно запоминать не всё состояние, а только то подмножество, на которое воздействует комманда. В этом случае Qt-шные классы довольно хороше подходят. Название: QUndoCommand, QUndoStack, ets. Отправлено: XXCoder от Ноябрь 21, 2006, 12:33 но они же в паин ивенте!!! из него запоминать... ??? ладно) попробую))) пасибо!!!
Название: QUndoCommand, QUndoStack, ets. Отправлено: Tonal от Ноябрь 21, 2006, 12:46 Кто в "паин ивенте"?
Ты их там создаёшь? |