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;
}