QListWigdetItem setData怎么存入QList再取出数组QList
时间: 2024-01-12 19:05:37 浏览: 72
如果您想在 QListWidgetItem 中存储 QList,并将其作为数组获取,可以使用 QVariant 类型和 QList 类型的组合。以下是示例代码:
```
// 创建 QListWidgetItem 对象
QListWidgetItem *item = new QListWidgetItem;
// 创建 QList
QList<int> myList;
myList << 1 << 2 << 3;
// 将 QList 作为 QVariant 对象存储在 QListWidgetItem 中
QVariant variant;
variant.setValue(myList);
item->setData(Qt::UserRole, variant);
// 获取存储在 QListWidgetItem 中的 QVariant 对象,并将其转换为 QList
QVariant storedVariant = item->data(Qt::UserRole);
QList<int> storedList = storedVariant.value<QList<int>>();
// 将 QList 转换为数组
int* storedArray = storedList.data();
int storedArraySize = storedList.size();
```
在上面的示例中,我们将 QList 存储在 QVariant 对象中,然后将其存储在 QListWidgetItem 中。我们使用 setData() 函数将 QVariant 对象存储在 QListWidgetItem 中,并使用 data() 函数获取存储的 QVariant 对象。最后,我们使用 value() 函数将 QVariant 对象转换为 QList,并使用 QList 的 data() 函数将 QList 转换为数组。
阅读全文