Название: Создание копии объекта QObject Отправлено: uriel от Ноябрь 21, 2007, 19:56 Появилась необходимость хранить копию объекта типа, унасленованного от QObject. Проблема в том, что для него конструктор копии закрытый.
Собственно вопрос, как это можно осуществить и есть ли для этого какие-либо стандартные средства Qt? Название: Re: Создание копии объекта QObject Отправлено: SerjVarshavskiy от Ноябрь 21, 2007, 22:11 может его в QDataStream/QBuffer, а потом оттуда...?
Название: Re: Создание копии объекта QObject Отправлено: uriel от Ноябрь 21, 2007, 22:41 А как мне в таком случае преобразовать его к QByteArray? ;)
Название: Re: Создание копии объекта QObject Отправлено: ритт от Ноябрь 21, 2007, 22:47 хранить копию где? зачем через стрим/байтаррэй? во внешнем хранилище, что ли?
конкретизируй задачу Название: Re: Создание копии объекта QObject Отправлено: uriel от Ноябрь 21, 2007, 22:53 Грубо говоря, нужно иметь две копии одного и того же объекта, что-то вроде бэкапа. Одну изменять, как потребуется, а вторую использовать для хранения начального стостояния этого объекта.
Название: Re: Создание копии объекта QObject Отправлено: pastor от Ноябрь 21, 2007, 22:59 Появилась необходимость хранить копию объекта типа, унасленованного от QObject. Проблема в том, что для него конструктор копии закрытый. Собственно вопрос, как это можно осуществить и есть ли для этого какие-либо стандартные средства Qt? Стандартныйх методов для создания deep копии объекта порожденного от QObject в Qt нет и не будет Название: Re: Создание копии объекта QObject Отправлено: pastor от Ноябрь 21, 2007, 23:02 Грубо говоря, нужно иметь две копии одного и того же объекта, что-то вроде бэкапа. Одну изменять, как потребуется, а вторую использовать для хранения начального стостояния этого объекта. Собирите все данные в какую-нибуть структуру (класс например) и делайте бэкап этих данных. Я не думаю что вам понадобяться состояние всего объекта QObject. Или я ошибаюсь? Название: Re: Создание копии объекта QObject Отправлено: uriel от Ноябрь 22, 2007, 08:41 Ну в целом, возможно, Вы и правы. Просто вопрос был в том, можно ли осуществить такое, ну а если нет - то придётся переписать код, чтобы создание копии не требовалось.
Всем спасибо за помощь. |