【问题标题】:How to read a value using QSetting if the value contains comma character [duplicate]如果值包含逗号字符,如何使用 QSetting 读取值[重复]
【发布时间】:2013-08-05 20:25:51
【问题描述】:

在我的 QT 项目中,我正在使用 QSettings 从 .ini 文件中读取值。如果该值包含逗号字符,QSettings 将无法读取它。我应该如何阅读这些值?

【问题讨论】:

  • 逗号字符被QSettings 视为列表分隔符。尝试使用qDebug() << settings.value("key"); 查看它从您的文件中加载的内容。如果是字符串列表,可以使用join(",")将其转换为字符串。
  • @PavelStrakhov 是的,它正在加载为 QStringList。

标签: qt ini qsettings


【解决方案1】:

QSettings 将逗号字符视为列表分隔符。带有逗号的 INI 值被解析为字符串列表。您可以将字符串列表转换回原始字符串,如下所示:

QVariant value = settings.value("key");
QString string;
if (value.type() == QVariant::StringList) {
  string = value.toStringList().join(",");    
} else {
  string = value.toString();
}

【讨论】:

    【解决方案2】:

    只需在配置字符串中创建一个带有 qsettings 和逗号的 ini 文件。作为 ini 文件的控制字符的字符将被% 百分号转义。

    【讨论】:

    • 我认为 OP 正在谈论不是由 Qt 生成的 INI 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2017-10-20
    相关资源
    最近更新 更多