Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: DenKa от Май 13, 2007, 15:49



Название: как сохранить на диск QGraphics в "своём" формате?
Отправлено: DenKa от Май 13, 2007, 15:49
Подскажите как лучше сохранить построенную сцену (QGraphicsScene) в "своём" формате? Т.е моя сцена состоит из нескольких QGraphicsPixmapItem, которые можно по отдельности поворачивать, менять размеры и пр. Задача сохранить\открыть файл так, чтобы все "двигалось".

добавлено спустя: 30 мин

 Еще вопросс: как скопировать в буфер QGraphicsPixmapItem?
Код:

QImage image(list.at(i)->scene()->width(), list.at(i)->scene()->height(), QImage::Format_ARGB32_Premultiplied);
image.fill(NULL);
QPainter painter(&image);
scene()->render(&painter);
QApplication::clipboard()->setImage(image);

Копирует в буфер всю сцену. Для QGraphicsPixmapItem я не нашел для него метода аналогичного QGraphicsScene.render(...)


Название: как сохранить на диск QGraphics в "своём" формате?
Отправлено: QCasper от Май 13, 2007, 23:18
По поводу первого - тебе надо записать макрос чтоли? То есть нажал кнопку "записывать", проделал некие действия (повернул/подвигал пару фигур), нажал кнопку "остановить" - записалось. Сохранил, открыл, нажал "проигрывать" - все повторилось так чтоли?

По поводу второго - у класса есть метод pixmap(), сохраняй его куда хочешь.


Название: как сохранить на диск QGraphics в "своём" формате?
Отправлено: DenKa от Май 14, 2007, 10:07
Спасибо за pixmap() - заработало.
Макрос мне пока не нужен. Но если сохранить сцену (из <b>нескольких </b> QGraphicsPixmapItem) в графический файл (gif,png и.т.п), то при открытие получаю <b>один</b> большой QGraphicsPixmapItem.


Название: как сохранить на диск QGraphics в "своём" формате?
Отправлено: QCasper от Май 14, 2007, 10:55
А, вон как. Ну а в чем проблема. Придумай формат файла, я бы, например, xml использовал. И в этом формате в файле сохраняй данные о пиксмапах сцены, размер, поцизия, само изображение (или путь к графическому файлу). При загрузке просто парси этот файл и располагай на сцене пиксмапы в зависимости от этих данных.