C++ Qt读取json文件到qtablewidget
时间: 2023-10-05 09:07:39 浏览: 297
要读取json文件到QTableWidget,可以按照以下步骤:
1. 读取json文件。使用QFile和QJsonDocument类来读取json文件。例如:
```c++
QFile file("data.json");
file.open(QIODevice::ReadOnly | QIODevice::Text);
QJsonDocument document = QJsonDocument::fromJson(file.readAll());
file.close();
```
2. 解析json数据。使用QJsonObject和QJsonArray类来解析json数据。例如:
```c++
QJsonObject root = document.object();
QJsonArray array = root["data"].toArray();
```
3. 将数据添加到QTableWidget中。使用QTableWidget的setItem()方法来添加数据。例如:
```c++
for(int i = 0; i < array.size(); i++) {
QJsonObject obj = array[i].toObject();
QTableWidgetItem *item1 = new QTableWidgetItem(obj["name"].toString());
QTableWidgetItem *item2 = new QTableWidgetItem(obj["age"].toString());
QTableWidgetItem *item3 = new QTableWidgetItem(obj["gender"].toString());
tableWidget->setItem(i, 0, item1);
tableWidget->setItem(i, 1, item2);
tableWidget->setItem(i, 2, item3);
}
```
这里假设QTableWidget已经被创建并添加了三列。完整的代码如下:
```c++
QFile file("data.json");
file.open(QIODevice::ReadOnly | QIODevice::Text);
QJsonDocument document = QJsonDocument::fromJson(file.readAll());
file.close();
QJsonObject root = document.object();
QJsonArray array = root["data"].toArray();
tableWidget->setRowCount(array.size());
tableWidget->setColumnCount(3);
for(int i = 0; i < array.size(); i++) {
QJsonObject obj = array[i].toObject();
QTableWidgetItem *item1 = new QTableWidgetItem(obj["name"].toString());
QTableWidgetItem *item2 = new QTableWidgetItem(obj["age"].toString());
QTableWidgetItem *item3 = new QTableWidgetItem(obj["gender"].toString());
tableWidget->setItem(i, 0, item1);
tableWidget->setItem(i, 1, item2);
tableWidget->setItem(i, 2, item3);
}
```
阅读全文