(profilesEnabled)); 还原: profilesEnable-6ren">
gpt4 book ai didi

c++ - 从 QSettings 恢复 QList

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:45:56 27 4
gpt4 key购买 nike

保存:

settings.setValue("profilesEnabled", QVariant::fromValue< QList<bool> >(profilesEnabled));

还原:

profilesEnabled = settings.value("profilesEnabled").toList()); //error

但是 toList() 返回一个 QVariant 的 QList,而 profilesEnabled 是一个 bool 的 QList。

有什么优雅的转换方式吗?(我可以遍历 QVariant 的 QList 并一一转换)

更新:

QVariant var = QVariant::fromValue< QList< bool > >(profilesEnabled);
settings.setValue("profilesEnabled", var);

第二行崩溃运行时:

QVariant::save: unable to save type 'QList<bool>' (type id: 1031).

ASSERT failure in QVariant::save: "Invalid type to save", file kernel\qvariant.cpp, line 1966

最佳答案

您的方法要求您实现流运算符,以使自定义 QVariant 类型的序列化成为可能。我建议将您的数据转换为 QVariantList

保存:

QVariantList profilesEnabledVariant;
foreach(bool v, profilesEnabled) {
profilesEnabledVariant << v;
}
settings.setValue("profilesEnabled", profilesEnabledVariant);

正在加载:

profilesEnabled.clear();
foreach(QVariant v, settings.value("profilesEnabled").toList()) {
profilesEnabled << v.toBool();
}

关于c++ - 从 QSettings 恢复 QList<bool>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com