基本信息
源码名称:QTreeWidget读写xml文件
源码大小:1.71M
文件格式:.rar
开发语言:C/C++
更新时间:2020-07-09
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

本示例将xml文件读取到QTreeWidget,且可以将QTreeWidget节点保存到xml文件中。

生成的exe在testtree文件夹的debugbin目录中,且源xml也在此目录中。

程序启动后,点击treexml即可。

具体请下载源码。

bool ManageTreeXml::SaveTreeXml(QTreeWidget *pTree, QString xmlPath)
{
 QDomDocument doc;
 QDomProcessingInstruction head = doc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");
 doc.appendChild(head);
 //invisibleRootItem()函数并不是得到我们想要的这个顶层节点,它得到的是所有节点的最终根节点,因此,得到顶层节点需要自己写操作,下面是根据任意一个节点获取其可见顶层节点的代码
 QTreeWidgetItem *rootItem = pTree->invisibleRootItem(); //树的根节点
 QTreeWidgetItem* childItem = rootItem->child(0);

 QString strRoot;
 strRoot = childItem->text(0);
 QDomElement root = doc.createElement(strRoot);
 doc.appendChild(root);

 SaveItem(root, childItem, doc);

 QFile file(xmlPath);
 if (!file.open(QIODevice::WriteOnly)){
 return false;
 }
 QString xml = doc.toString();
 QTextStream txtOutput(&file);
// txtOutput.setCodec("UTF-8");
// txtOutput<<xml;
 doc.save(txtOutput, 4);
 file.close();

 return true;
}

bool ManageTreeXml::LoadTreeXml(QTreeWidget *pTree, QString xmlPath)
{
 pTree->clear();

 if(xmlPath.isEmpty()) return false;

 QDomDocument* doc = new QDomDocument;
 QFile fl(xmlPath);
 if(!doc->setContent(&fl)){
 fl.close();
 return false;
 }
 fl.close();

 showXml(pTree, doc,false);

 return false;
}