Russian Qt Forum

Qt => XML => Тема начата: Stek от Июль 17, 2012, 11:08



Название: Сохранение TreeWidget в XML
Отправлено: Stek от Июль 17, 2012, 11:08
Доброго времени суток!

Возникла задача сохранить дерево TreeWidget в xml, а затем прочесть его. Вроде бы и есть примеры. Читал про SAX, DOM, но близкого к тому что мне нужно найти не смог, возникли проблемы. В частности как сохранить рисунки узлов в xml, можно ли сослаться на них в тегах.

Визуально treewidget дерево довольно простое, представляет собой:

-parent
  -item
     subitem
     subitem
     subitem


Напротив каждого узла расположена картинка.

Нечто похожее имеется для Delphi http://delphi.about.com/library/weekly/aa101904a.htm (http://delphi.about.com/library/weekly/aa101904a.htm)


В QT новичок, не судите строго если что не так. Буду благодарен за помощь, Спасибо :)


Название: Re: Сохранение TreeWidget в XML
Отправлено: alexis031182 от Июль 17, 2012, 14:24
Возникла задача сохранить дерево TreeWidget в xml, а затем прочесть его. Вроде бы и есть примеры. Читал про SAX, DOM, но близкого к тому что мне нужно найти не смог, возникли проблемы.
Вы искали готовое решение. А можно просто взять примеры из кьютишного ассистента, слегка подправить и будет то, что нужно.

В частности как сохранить рисунки узлов в xml, можно ли сослаться на них в тегах.
Естественно, сами картинки сохранять в xml не стоит. Можно использовать либо наименование файла картинки, либо какой-нибудь уникальный идентификатор.

Визуально treewidget дерево довольно простое, представляет собой:

-parent
  -item
     subitem
     subitem
     subitem

Код:
<?xml version="1.0" encoding="UTF-8"?>
<parent>
   <item txt="my item">
      <item txt="my subitem1" />
      <item txt="my subitem2" />
   </item>
</parent>
Напротив каждого узла расположена картинка.
Код:
<?xml version="1.0" encoding="UTF-8"?>
<parent>
   <item txt="my item" img="fname.jpg">
      <item txt="my subitem1" img="fname1.jpg" />
      <item txt="my subitem2" img="fname2.jpg" />
   </item>
</parent>
Нечто похожее имеется для Delphi
Код
C++ (Qt)
QDomDocument doc("Tree");
 
QDomElement parent = doc.createElement("parent");
doc.appendChild(parent);
 
QDomElement item = doc.createElement("item");
item.setAttribute("txt", "my item");
item.setAttribute("img", "fname.jpg");
 
for(int i = 0; i < 2; ++i) {
  QDomElement child_item = doc.createElement("item");
  child_item.setAttribute("txt", QString("my subitem%1").arg(i));
  child_item.setAttribute("img", QString("fname%1.jpg").arg(i));
  item.appendChild(child_item);
}
 
parent.appendChild(item);
 
QString xml = doc.toString();


Название: Re: Сохранение TreeWidget в XML
Отправлено: Stek от Июль 18, 2012, 08:06

Большущее спасибо за помощь!