2024年6月13日发(作者:)

85 {

86 while(!()){

87 QTreeWidgetItem* it = new QTreeWidgetItem;

88 if(bEditable){

89 it->setFlags(Qt::ItemIsEditable|Qt::ItemIsEnabled|Qt::ItemIsSelectable);

90 }

91 setTreeNodeText(domParent ,it);

92 treeParent->addChild(it);

93 if(ldNodes()){

94 showXmlTreeNode(pTree, hild() ,it, bEditable);

95 }

96 domParent = bling();

97 }

98 return true;

99 }

100

101 void ManageTreeXml::setTreeNodeText(QDomNode Node ,QTreeWidgetItem* treeNode)

102 {

103 if(treeNode == NULL) return;

104

105 treeNode->setText(0 ,ent().tagName());

106 // qDebug() << "ItemText:" << ent().tagName();

107

108 QString treeType = TREE_PACKAGE_TYPE;

109 if(treeType == TREE_LINK_TYPE)

110 {

111 // treeNode->setText(1 ,ent().attribute("portName"));

112 // treeNode->setText(2 ,ent().attribute("portDesc"));

113 // treeNode->setText(3 ,ent().attribute("portType"));

114 // treeNode->setText(4 ,ent().attribute("portIP"));

115 // treeNode->setText(5 ,ent().attribute("portOrBaudRate"));

116 }

117 else if(treeType == TREE_PACKAGE_TYPE)

118 {

119 // treeNode->setText(1 ,ent().attribute("Value"));

120 // treeNode->setText(2 ,ent().attribute("Name"));

121 // treeNode->setText(3 ,ent().attribute("Index"));

122 // treeNode->setText(4 ,ent().attribute("Type"));

123 // treeNode->setText(5 ,ent().attribute("Len"));

124 // treeNode->setText(6 ,ent().attribute("Desc"));

125 }

126 }

127

128

129 void ManageTreeXml::SaveItem(QDomElement& root, QTreeWidgetItem *item, QDomDocument& doc)

130 {

131 int countChild = item->childCount();

132 for (int i = 0; i < countChild; i++)

133 {

134 QTreeWidgetItem *childItem = item->child(i);

135 QString itemTxt = childItem->text(0);

136 QDomElement ele = Element(itemTxt);

137 Child(ele);

138

139 SaveItem(ele,childItem,doc);

140 }

141 }

View Code

ManageTreeXml.h

1 #ifndef MANAGETREEXML_H

2 #define MANAGETREEXML_H

3 #include

4 #include

5

6 class ManageTreeXml

7 {

8 public:

9 ManageTreeXml();

10

11 bool SaveTreeXml(QTreeWidget* pTree, QString xmlPath);

12 bool LoadTreeXml(QTreeWidget* pTree, QString xmlPath);

13 private:

14 bool showXml(QTreeWidget* pTree, QDomDocument *pDoc, bool bEditable);

15 bool showXmlTreeNode(QTreeWidget* pTree, QDomNode domParent, QTreeWidgetItem *treeParent, bool bEditable);

16 void setTreeNodeText(QDomNode Node, QTreeWidgetItem *treeNode);

17

18 void SaveItem(QDomElement& root,QTreeWidgetItem* item,QDomDocument& doc);

19 };

20

21 #endif // MANAGETREEXML_H

View Code

1 #include "DlgTreeXml.h"

2 #include "ui_DlgTreeXml.h"

3 #include "ManageTreeXml.h"

4

5 DlgTreeXml::DlgTreeXml(QWidget *parent) :

6 QDialog(parent),

7 ui(new Ui::DlgTreeXml)