2 / 2 / 1
Регистрация: 29.05.2014
Сообщений: 148
1

Нарисовала фигуры на QGraphicsScene. Как их сохранить в XML, JSON чтобы потом можно было их открыть?

13.06.2015, 17:30. Показов 1137. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
подскажите как QGraphicsScene сохранить в XML и JSON чтобы потом можно было их открыть?

к примеру рисую просто линию
C++ (Qt)
1
2
3
4
5
6
7
8
9
 QGraphicsView *p_view = new QGraphicsView();
       scene = new QGraphicsScene(p_view);
 
       p_view->setScene(scene);
       p_view->setSceneRect(0,0,p_view->width()-50, p_view->height()-50);
       ui->graph_layout->addWidget(p_view);
 
       QGraphicsItem * scene_item = scene->addLine(QLineF(10,10,100,100), QPen(Qt::black));
       scene->addItem(scene_item);
потом по нажатию на кнопку нужно выполнить сохранения в форматах XML, JSON
по примеру, который нашла для сохранения XML делаю следующий слот (но он с ошибкой, не пойму какой)
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
QString fileName(QDir::currentPath().append("//scene.xml"));
        QFile file(fileName);
        if (!file.open(QIODevice::WriteOnly))
        {
                return;
        }
        QXmlStreamWriter xmlWriter(&file);
        xmlWriter.setAutoFormatting(true);
        xmlWriter.writeStartDocument();
        xmlWriter.writeStartElement("SceneData");
        xmlWriter.writeAttribute("version", "v1.0");
        xmlWriter.writeStartElement("GraphicsItemList");
        foreach( QGraphicsItem* item, scene->items())
        {
            if( item->type() == QGraphicsItem::Type )
            {
                graph* myItem = dynamic_cast<graph*>(item);
                xmlWriter.writeStartElement("MyGraphicsItem");
                xmlWriter.writeAttribute("xCoord", QString::number(myItem->x()));
                xmlWriter.writeAttribute("yCoord", QString::number(myItem->y()));
                xmlWriter.writeEndElement();  //end of MyGraphicsItem
            }
        }
        xmlWriter.writeEndElement();   //end of GraphicsItemList
        xmlWriter.writeEndElement();   //end of SceneData
        close();
вообщем пожалуйста помогите, сама не могу разобраться.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2015, 17:30
Ответы с готовыми решениями:

как сделать, чтобы при нажатии на кнопку появлялась таблица, заданная мною, чтобы в полях таблицы можно было ввести информацию а потом сохранить ее
Здравствуйте! Подскажите, вот у меня есть веб-страница и код в ней. Если открыть в браузере, то сам...

В какую папку сохранить файл чтобы его можно было открыть?
У меня есть файл docx формата.По клику на кнопку он должен открываться,это сделано таким методом ...

Как получить дамп памяти программы, чтоб потом можно было его сохранить и проанализировать?
Ну тут собственно есть нюансы: 1. Как собственно получить сам дамп. То есть это скорее всего...

Как сохранить данные, чтоб их можно было открыть в Microsoft Visio
Здравствуйте! В моем приложении строится граф. Могу ли я его как-то сохранить в файл, чтоб потом...

2
161 / 126 / 30
Регистрация: 30.05.2015
Сообщений: 380
14.06.2015, 13:52 2
на первый взгляд отсутствует xmlWriter.writeEndDocument();
0
66 / 66 / 18
Регистрация: 31.03.2015
Сообщений: 253
15.06.2015, 09:36 3
Попробуйте как вариант использовать QDomDocument вместо QXmlStreamWriter.
0
15.06.2015, 09:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2015, 09:36
Помогаю со студенческими работами здесь

Wpf RichTextBox. Как вставить картинку так, чтобы потом можно было найти source
т.е. имеется RichTextBox, и имеется файл с картинкой. когда я вставляю картинку через clipboard...

Как создать поле с клетками, чтобы потом можно было в каждую клетку помещать определенную линию?
Скажите пожалуйста,как я могу создать поле с клетками,в каждую клетку потом чтобы я мог помещать...

Как создать массив строк или символов, чтобы потом можно было с цикла его заполнить?
Есть наработки, но не работает: while(c!=27){ FILE* file1; file1=fopen(&quot;zarplaty.txt&quot;,&quot;r&quot;);...

Как преобразовать файл в биты (в нули и единицы), чтобы потом можно было его зашифровать в код Грея?
Добрый день всем! У меня к вам несколько вопросов, которые касаются следующего: В институте дали...

Как правильно сохранить данные в таблицы, чтобы их сразу же можно было использовать?
Вообщем есть 2 таблицы, который созданы в локальной БД c#. Я открываю exe файл программы и в эти...

Как должна быть записана матрица, чтобы ее можно было открыть из файла?
Как именно должна быть записана числовая матрица в текстовом файле, чтобы было возможно ее считать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru