/// /// \brief Form_PlatformConfiguration::traversalControl /// \param q /// save /// void Form_PlatformConfiguration::traversalControl(const QObjectList& q) { for(int i=0;i<q.length();i++) { if(!q.at(i)->children().empty()) { traversalControl(q.at(i)->children()); } QObject* o = q.at(i); if (o->inherits("QLineEdit")) { QLineEdit* b = qobject_cast<QLineEdit*>(o); QDomElement qe= doc_config.createElement(b->objectName()); qe.setAttribute("Value",b->text()); qe.setAttribute("Type","QLineEdit"); doc_config.firstChildElement("root").appendChild(qe); } else if (o->inherits("QGroupBox")) { QGroupBox* b = qobject_cast<QGroupBox*>(o); QDomElement qe= doc_config.createElement(b->objectName()); qe.setAttribute("Value",b->isChecked()); qe.setAttribute("Type","QGroupBox"); doc_config.firstChildElement("root").appendChild(qe); } else if (o->inherits("QTableWidget")) { QTableWidget * b = qobject_cast<QTableWidget*>(o); int col_rate = b->objectName() == "table_labels" ? 1:0; QDomElement qe= doc_config.createElement(b->objectName()); qe.setAttribute("Value_R",b->rowCount()); qe.setAttribute("Value_C",b->columnCount()); qe.setAttribute("Type","QTableWidget"); for(int i =0 ; i<b->rowCount() ;i++) { QDomElement item= doc_config.createElement("R"+QString::number(i)); for(int j=0 ;j <b->columnCount() - col_rate; j++) { item.setAttribute("C"+QString::number(j), b->item(i,j)->text()); } qe.appendChild(item); } doc_config.firstChildElement("root").appendChild(qe); } } }
void Form_PlatformConfiguration::LoadConfig(const QObjectList &q) { for(int i=0;i<q.length();i++) { if(!q.at(i)->children().empty()) { LoadConfig(q.at(i)->children()); } QObject* obj = q.at(i); if (obj->inherits("QLineEdit")) { QLineEdit *b = qobject_cast<QLineEdit*>(obj); QString Name = obj->objectName(); QDomNode node = STT_Global::FindXml(doc_config,Name); if(!node.isNull() ) b->setText(node.attributes().namedItem("Value").nodeValue() ); } else if (obj->inherits("QGroupBox")) { QGroupBox* b = qobject_cast<QGroupBox*>(obj); QDomNode node = STT_Global::FindXml(doc_config,b->objectName()); if(!node.isNull() ) b->setChecked( node.attributes().namedItem("Value").nodeValue() == "1" ? true:false); } else if (obj->inherits("QTableWidget")) { QTableWidget* b = qobject_cast<QTableWidget*>(obj); QDomNode node = STT_Global::FindXml(doc_config,b->objectName()); if( !node.isNull() ) { int Value_R = node.attributes().namedItem("Value_R").nodeValue().toInt(); int Value_C = node.attributes().namedItem("Value_C").nodeValue().toInt(); b->setRowCount(Value_R); for(int i =0 ; i<Value_R ;i++) { QDomNode item= node.childNodes().at(i); for(int j=0 ;j < Value_C ; j++) { b->setItem(i, j, new QTableWidgetItem(item.attributes().namedItem("C"+QString::number(j)).nodeValue())); } } } } } }