Название: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: AntonUfo от Январь 29, 2009, 14:55 Привет всем !!!
С программированием прям скажем не очень :( возникло два вопроса немогу разобраться: В программе по клику мышки вывожу на QGraphicsView энное количество Item-ов, определяю для них различные параметры (цвет, шрифт и т.д.) теперь вопросы: 1. как "обойти" все выведенные Item с первого до последнего (QList <QGraphicsItem *> item как дальше ?) 2.Как сохранить все итемы в двоичный файл: мои Itemы Код: class MyItems : public QGraphicsItems Код:
очень хочется разобраться... Спасибо! Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: Rcus от Январь 29, 2009, 15:38 1. Возможно не понял вопроса, но foreach?
2. это уже зависит от ваших пожеланий, например сохранять позицию, трансформацию, вложенный список подчиненных и т.д.... Но помоему проще будет сохранить информацию на основе которой они были созданы. Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: AntonUfo от Январь 29, 2009, 16:49 Так в том то и дело что я незнаю как !!!
Пусть в моем классе определены две преременные: public: int Number; QString name; я нарисовал 10 Итемов, присвоил им их номера и имена , как теперь мне записать в двоичный файл ? Item Number Name 1 1 a 2 2 b 3 3 c я немогу понять как мне использовать итераторы !!! У меня класс производный от QGraphicItem , нужно ли мне использовать "сериализацию", не пойму никак что это такое ? Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: Swappp от Январь 29, 2009, 22:15 Так это вроде элементарные вещи... И кстати к 2D и 3D графики отношения не имеют :)
Можно например перегрузить оператор << у класса унаследованного от QGraphicItem. В итоге получится что то вроде того: Код: foreach(o, list) Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: lit-uriy от Январь 30, 2009, 08:35 2 AntonUfo, почитай про контейнеры и работу с ними, тут есть перевод (http://doc.crossplatform.ru/qt/4.3.5/containers.html)
Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: BaltikS от Январь 30, 2009, 09:24 Примерно так...
Код
Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: AntonUfo от Февраль 03, 2009, 13:14 Примерно так... Спасибо огромное ! теперь другая проблема появилась, дело в том что на сцену я выкидываю мой класс образованный от QGraphicsItem и мой второй класс образованный от QGraphicsLineItem, если рисовать только фигуры отрисованные с помощью QGraphicsItem то все сохраняется, а если на сцене рисовать еще и с помощью QGraphicsLineItem то функция сохранения виснет... :( , в чем может быть проблема ? Спасибо !!! class Node : public QGraphicsItem class Link : public QGraphicsLinkItem проблема в том что вот такой код работает нормально (просматривается список и если "линия" то выводим в файл): Код: foreach(QGraphicsItem *item, scene->items()) а вот такой код НЕ работает (должен работать так, просматривается список и если "узел" то выводим в файл): Код: foreach(QGraphicsItem *item, scene->items()) как это исправить !? Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: Rcus от Февраль 03, 2009, 14:05 Читать доки по qgraphicsitem_cast (иначе qgraphicsitem_cast не отличается от static_cast)
Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: BaltikS от Февраль 03, 2009, 15:09 Типа этого надо написать при создании нового потомка... (взято из ассистента).... Как написал Rcus внимательно изучаем документацию.. :D
Код
Название: Re: Как сохранить QGraphicsItemы выведенные на QGraphicsScene в файл? Отправлено: AntonUfo от Февраль 03, 2009, 15:36 Спасибо ! Заработало!
|