QT实现将QTableWidget中的学生信息,包括id name scor保存到XML文件中
时间: 2023-11-27 12:54:03 浏览: 108
以下是实现的基本步骤:
1. 创建一个QTableWidget对象,并添加需要保存的学生信息。
2. 导入QtXml模块,使用QDomDocument类创建一个XML文档对象。
3. 创建根元素并将其添加到XML文档对象中。
4. 循环遍历QTableWidget中的每一行,并将每个学生信息作为一个子元素添加到根元素中。
5. 保存XML文档到指定路径中。
下面是一个示例代码:
```cpp
#include <QtWidgets>
#include <QtXml>
void saveToXml(QTableWidget *table, const QString &filePath)
{
// 创建XML文档对象
QDomDocument doc;
QDomElement root = doc.createElement("students");
doc.appendChild(root);
// 遍历QTableWidget中的每一行,将每个学生信息添加到XML文档中
for (int row = 0; row < table->rowCount(); ++row) {
QDomElement student = doc.createElement("student");
root.appendChild(student);
QDomElement id = doc.createElement("id");
QDomText idText = doc.createTextNode(table->item(row, 0)->text());
id.appendChild(idText);
student.appendChild(id);
QDomElement name = doc.createElement("name");
QDomText nameText = doc.createTextNode(table->item(row, 1)->text());
name.appendChild(nameText);
student.appendChild(name);
QDomElement score = doc.createElement("score");
QDomText scoreText = doc.createTextNode(table->item(row, 2)->text());
score.appendChild(scoreText);
student.appendChild(score);
}
// 保存XML文档到指定路径中
QFile file(filePath);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
doc.save(out, 4);
file.close();
}
}
```
使用示例:
```cpp
QTableWidget *table = new QTableWidget;
// 添加学生信息到QTableWidget中
QString filePath = "students.xml";
saveToXml(table, filePath);
```
注意:在使用该函数时,需要确保QTableWidget中已经添加了学生信息,并且每个学生信息的id、name、score都保存在了一个QTableWidgetItem对象中。
阅读全文