C++ 恢复QList<;布尔>;来自QSettings

C++ 恢复QList<;布尔>;来自QSettings,c++,qt,C++,Qt,保存: settings.setValue("profilesEnabled", QVariant::fromValue< QList<bool> >(profilesEnabled)); 但是toList()返回QVariant的QList,profilesEnabled是bool的QList 有没有什么优雅的方式来转换它? (我可以遍历QVariant的QList并逐个转换) 更新: QVariant var = QVariant::fromValue< QL

保存:

settings.setValue("profilesEnabled", QVariant::fromValue< QList<bool> >(profilesEnabled));
但是toList()返回QVariant的QList,profilesEnabled是bool的QList

有没有什么优雅的方式来转换它? (我可以遍历QVariant的QList并逐个转换)

更新:

QVariant var = QVariant::fromValue< QList< bool > >(profilesEnabled);
settings.setValue("profilesEnabled", var);
QVariant var=QVariant::fromValue>(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::save:无法保存类型“QList”(类型id:1031)。
QVariant::save中的断言失败:“要保存的类型无效”,文件kernel\QVariant.cpp,第1966行

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

保存:

QVariantList profilesEnabledVariant;
foreach(bool v, profilesEnabled) {
  profilesEnabledVariant << v;
}
settings.setValue("profilesEnabled", profilesEnabledVariant);
QVariantList profilesEnabledVariant;
foreach(布尔v,配置文件启用){

profilesEnabledVariant设置的格式是什么?如果使用
QSettings::IniFormat
,则无法将其保存到文件中。
QVariantList profilesEnabledVariant;
foreach(bool v, profilesEnabled) {
  profilesEnabledVariant << v;
}
settings.setValue("profilesEnabled", profilesEnabledVariant);
profilesEnabled.clear();
foreach(QVariant v, settings.value("profilesEnabled").toList()) {
  profilesEnabled << v.toBool();
}