Название: QTablewidget + ctrl-z Отправлено: CJ1 от Июля 20, 2012, 17:23 Как сделать в QTableWidget чтоб работало назад все изменения
Название: Re: QTablewidget + ctrl-z Отправлено: mutineer от Июля 20, 2012, 17:26 Запоминать все изменения, а при нажатии ctrl+z откатывать по очереди
Название: Re: QTablewidget + ctrl-z Отправлено: CJ1 от Июля 20, 2012, 17:28 Хм.... не представляю как можно записать все изменения.... удаления стобцов и строк, затем заного их создания, про том все данные нужно отправить в сеть
Название: Re: QTablewidget + ctrl-z Отправлено: mutineer от Июля 20, 2012, 17:30 Ну да, это не очень тривиальная задача
Название: Re: QTablewidget + ctrl-z Отправлено: V1KT0P от Июля 20, 2012, 17:30 Хм.... не представляю как можно записать все изменения.... удаления стобцов и строк, затем заного их создания, про том все данные нужно отправить в сеть Храни diff-ы между прошлым и следующим состояниями.Название: Re: QTablewidget + ctrl-z Отправлено: CJ1 от Июля 20, 2012, 17:43 Жесть...... Ну придется мудрить ченить!
Название: Re: QTablewidget + ctrl-z Отправлено: CJ1 от Июля 20, 2012, 18:16 Вроде уже в голове есть идеи..... но , а есть хоть малейшый пример подобного! Данные же все таки динамические?
Название: Re: QTablewidget + ctrl-z Отправлено: V1KT0P от Июля 20, 2012, 18:35 Вроде уже в голове есть идеи..... но , а есть хоть малейшый пример подобного! Данные же все таки динамические? Дык я же сказал, что самый простой это хранить diff-ы. Например есть таблица на 3 столбца и 10 строк. Во 2-м столбце 5 строки было "Оплатить" а стало "Оплачено", значит создаем diff в котором сказано что для возвращения на предыдущее состояние необходимо изменить ячейку 2-го столбца 5-й строки на "Оплатить".Более подробно, более совершенные способы можешь посмотреть в исходника Open Source объектов. Например Calc, Writer из OpenOffice. Если не осилишь, то глянь программы по проще. Название: Re: QTablewidget + ctrl-z Отправлено: Fat-Zer от Июля 20, 2012, 18:36 Вроде уже в голове есть идеи..... но , а есть хоть малейшый пример подобного! Данные же все таки динамические? если ищешь как это сделать, чтобы было Ъ, то читай про паттерн «команда»... соответственно разделяешь таблицу и модель и делаешь так, чтобы любое взаимодействие таблицы и модели шло через специальный объект-команду с методами «Выполнить(модель)» и «Отменить(Модель)»... если таблица небольшая, то можно запоминать каждый раз её всю, тогда можно использовать паттерн мементо (не помню как по нашему) ЗЫ: в помощь книжечка «Приемы объектно-ориентированного программирования» Э. Гамма Р. Хелм ЗЗЫ: задача очень распространённая, но совсем не тривиальная и не простая... Название: Re: QTablewidget + ctrl-z Отправлено: CJ1 от Июля 20, 2012, 18:41 таблица динамическая..... и очень огромная
|