c++ 将set容器数据放入tablewidget
时间: 2024-01-23 22:02:56 浏览: 132
要将set容器数据放入QTableWidget,同样需要先将set转换为vector或list,然后遍历vector或list中的元素,将其添加到QTableWidget中的相应单元格中。
以下是一个例子:
```c++
// 假设set容器中的数据为{(1, "apple"), (2, "banana"), (3, "orange")}
set<pair<int, string>> my_set{{1, "apple"}, {2, "banana"}, {3, "orange"}};
// 将set转换为vector
vector<pair<int, string>> my_vector(my_set.begin(), my_set.end());
// 遍历vector中的元素,并将其添加到QTableWidget中
for (int row = 0; row < my_vector.size(); ++row) {
for (int col = 0; col < 2; ++col) { // 因为每个元素有2个属性,所以列数为2
QTableWidgetItem* item = new QTableWidgetItem;
if (col == 0) {
item->setData(Qt::DisplayRole, my_vector[row].first);
} else {
item->setData(Qt::DisplayRole, QString::fromStdString(my_vector[row].second));
}
tableWidget->setItem(row, col, item);
}
}
```
在上面的代码中,我们首先将set容器数据转换为vector,然后遍历vector中的元素,将元素添加到QTableWidget中的相应单元格中。需要注意的是,我们使用了QTableWidgetItem类来创建一个表格项,并使用setItem方法将其添加到QTableWidget中。同时,我们也需要使用setData方法来设置表格项的数据,其中第一个参数为Qt::DisplayRole,表示显示的数据。
阅读全文