Прошу помочь решить проблему. Есть сцена(QGraphicsScene). Пытаюсь все объекты со сцены сохранить в какой-нибудь файл, и потом их загрузить обратно на сцену. Пытался сделать следующее:
save
void Diagram::save()
{
QList<QGraphicsItem*> item=scene->items();
QFile file("File.txt");
file.open(QIODevice::WriteOnly);
if(!file.isOpen())
{
qDebug()<<file.errorString();
}
QDataStream stream(&file);
size_t x=0;
while(x<item.size())
{
QGraphicsItem *i=item.at(x);
stream<<i->pos();
stream<<i->flags();
stream<<i->parentObject();
x++;
}
file.flush();
file.close();
}
load
void Diagram::load()
{
QString str=QFileDialog::getOpenFileName(this);
QFile file(str);
file.open(QIODevice::ReadOnly);
if(!file.isOpen())
{
qDebug()<<file.errorString();
}
QList<QGraphicsItem*> item;
QDataStream stream(&file);
while(!stream.atEnd())
{
QGraphicsItem* i;
QPointF pt;
stream>>pt;
i->setPos(pt);
QFlags<Qt::ItemFlags> f; // на этом моменте и застрял, выдает ошибки
}
}
Если я пытаюсь сделать не правильно, подскажи в какую сторону смотреть. Спасибо!