Возникла задача сохранить дерево 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();