文章是我另一个账号xfdadada上的,但由于无法账号密码登录,因此重新转过来。
QTreeWidget和QDomDocument类里面似乎没有直接的转换方法。
也可以考虑继承QTreeWidget写一个新类,不过暂时没有那样做。
关键函数包含三个。
1. on_actionXML_triggered(), 将XML文件读取到QDomDocument对象。QDomDocument是Qt本身提供的类,用来以树结构保存XML文档。
2. parseDomToItem(const QDomElement &element, QTreeWidgetItem *parent), 递归解析QDomDocument对象
3. createItem(const QDomElement &element, QTreeWidgetItem *parent), 在解析过程中根据QDomElement类型创建QTreeWidgetItem
void XMLTREE_MainWindow::parseDomToItem(const QDomElement &element, QTreeWidgetItem *parent)
{
if(element.isNull())
return;
QTreeWidgetItem *item = createItem(element, parent);
QDomNodeList children = element.childNodes();
for(int i=0;isetText(0, element.tagName());
item->setText(1, element.text());
return item;
}
void XMLTREE_MainWindow::on_actionXML_triggered()
{