QStandardItemModel获取某列所有item的内容为一个QStringList
时间: 2024-03-11 12:49:10 浏览: 81
可以通过以下代码获取QStandardItemModel中某一列的所有item内容,存储在QStringList中:
```c++
QStringList columnItems;
int column = 0; // 指定列号
for (int row = 0; row < model->rowCount(); ++row) {
QModelIndex index = model->index(row, column);
if (index.isValid()) {
QString itemText = index.data(Qt::DisplayRole).toString();
columnItems.append(itemText);
}
}
```
其中,`model`是QStandardItemModel对象,`column`是需要获取的列号。通过循环遍历QStandardItemModel中的每一行,获取指定列的QModelIndex对象,并通过`index.data(Qt::DisplayRole)`方法获取到该item的内容。最后将所有item的内容存储在QStringList中。
相关问题
QStandardItemModel获取某列所有item的内容为一个QStringList,最简单的方法
可以使用以下代码获取`QStandardItemModel`中某一列的所有item内容,存储在`QStringList`中:
```c++
QStringList columnItems;
int column = 0; // 指定列号
for (int row = 0; row < model->rowCount(); ++row) {
QStandardItem *item = model->item(row, column);
if (item) {
columnItems.append(item->text());
}
}
```
其中,`model`是`QStandardItemModel`对象,`column`是需要获取的列号。通过循环遍历`QStandardItemModel`中的每一行,获取指定列的`QStandardItem`对象,并通过`item->text()`方法获取到该item的文本内容。最后将所有item的文本内容存储在`QStringList`中。
QStandardItemModel将第0列的数据都导入到一个QStringList中
可以通过以下代码将QStandardItemModel第0列的数据导入到一个QStringList中:
```c++
QStandardItemModel* model = new QStandardItemModel(this); // 假设已经创建了QStandardItemModel
QStringList list;
for(int i=0; i<model->rowCount(); i++){
QStandardItem* item = model->item(i, 0); // 获取第0列的数据项
QString data = item->text(); // 获取数据项的文本
list.append(data); // 将文本添加到QStringList中
}
```
上述代码中,首先创建了一个QStandardItemModel对象`model`,然后通过循环遍历获取每一行的第0列数据项,并将其文本添加到QStringList中。循环结束后,`list`中即包含了第0列的所有数据。
阅读全文