QTreeWidgetItem SetData怎么存储一个结构体,再取出来
时间: 2024-03-01 13:53:09 浏览: 210
QTreeWidgetItem的setData(int column,int role,QVariant& data)等,
QTreeWidgetItem 的 SetData 方法可以存储 QVariant 类型的数据,而 QVariant 类型可以存储任意类型的数据,包括结构体。以下是一个示例代码,展示如何存储一个结构体到 QTreeWidgetItem 中,并从中取出。
```c++
struct MyStruct {
int value1;
QString value2;
};
// 存储结构体到 QTreeWidgetItem
MyStruct myStruct;
myStruct.value1 = 42;
myStruct.value2 = "Hello, world!";
QTreeWidgetItem* item = new QTreeWidgetItem();
item->setData(0, Qt::UserRole, QVariant::fromValue(myStruct));
// 从 QTreeWidgetItem 中取出结构体
MyStruct retrievedStruct = item->data(0, Qt::UserRole).value<MyStruct>();
int retrievedValue1 = retrievedStruct.value1; // 42
QString retrievedValue2 = retrievedStruct.value2; // "Hello, world!"
```
在上面的示例中,我们首先定义了一个结构体 MyStruct,并给它的两个成员变量赋值。然后我们创建了一个 QTreeWidgetItem,并使用 SetData 方法将结构体存储到其中。在取出结构体时,我们使用了 data 方法获取 QVariant 类型的值,并使用 value 函数将其转换为 MyStruct 类型。最后我们可以访问结构体中的成员变量。
阅读全文