c ++ qt我可以用多个结构对象填充QVariant吗
c++ qt can i fill a QVariant with multiple struct objects
我有以下结构:
struct FileInfo {
QString fileName;
QString fileSize;
QString md5Sum;
};
是否可以将大约 30 个这样的对象放入 QVariant 中,然后能够遍历 QVariant 以检索基于索引的结构之一,然后将对象转换回结构并查询结构以获取 say特定文件的文件大小?有没有更好的方法来解决我的问题?
你可以考虑用QVariantList来存储对象为QVariant。当然,您可以转换回您的自定义结构。
示例。
struct FileInfo {
QString fileName;
QString fileSize;
QString md5sum;
};
int main()
{
QVariantList variantList;
for(int i = 0; i < 30; i++) {
FileInfo info{QString("File %1").arg(i), QString("size %1").arg(i), QString("md5sum %1").arg(i)};
QVariant var;
var.setValue(info);
variantList.append(var);
}
for (auto v: variantList) {
FileInfo f = v.value<FileInfo>();
qDebug() << "File name: " << f.fileName << "\tfile size: " << f.fileSize;
}
return 0;
}
我有以下结构:
struct FileInfo {
QString fileName;
QString fileSize;
QString md5Sum;
};
是否可以将大约 30 个这样的对象放入 QVariant 中,然后能够遍历 QVariant 以检索基于索引的结构之一,然后将对象转换回结构并查询结构以获取 say特定文件的文件大小?有没有更好的方法来解决我的问题?
你可以考虑用QVariantList来存储对象为QVariant。当然,您可以转换回您的自定义结构。
示例。
struct FileInfo {
QString fileName;
QString fileSize;
QString md5sum;
};
int main()
{
QVariantList variantList;
for(int i = 0; i < 30; i++) {
FileInfo info{QString("File %1").arg(i), QString("size %1").arg(i), QString("md5sum %1").arg(i)};
QVariant var;
var.setValue(info);
variantList.append(var);
}
for (auto v: variantList) {
FileInfo f = v.value<FileInfo>();
qDebug() << "File name: " << f.fileName << "\tfile size: " << f.fileSize;
}
return 0;
}