这是一个简单的测试:

QSettings *settings = new QSettings("test.ini", QSettings::IniFormat);

QStringList values;
values << "stringwith'quote"
       << "\"stringwithdoublequotes\""
       << "string"
       << "string with spaces"
       << "stringwith\nnewline"
       << "stringwith,comma"
       << "stringwith;semicolon"
       << ";"
       << ","
       << "'"
       << "',";

for (int i=0; i<values.count(); i++){
    settings->setValue("value" + QString::number(i), values[i]);
}

这是 .ini 的样子:

[General]
value0=stringwith'quote
value1=\"stringwithdoublequotes\"
value2=string
value3=string with spaces
value4=stringwith\nnewline
value5="stringwith,comma"
value6="stringwith;semicolon"
value7=";"
value8=","
value9='
value10="',"

是否可以强制将所有字符串保存在双引号中?

#1楼 票数:0

我认为你可以,但有点 bvy 自己做。 您可以制作一种方法来确保您的字符串被正确引用

QString quoted(QString word)
{
    return "\"" + word.replace('\\', "\\\\").replace('"',"\\\"").replace('\t', "\\t") + "\""
}

该方法添加引号,并转义一些特殊字符。 然后您可以在列表中的任何字符串上调用它。 如果您要经常使用它,您可以从 QSetting 继承以覆盖方法 setValue 并使其自动。

请注意,方法 QSettings::value 也需要进行一些调整才能取消引用它们。

  ask by kentoriki translate from so

未解决问题?本站智能推荐:

2回复

QSettings:是否可以禁用组?

我正在使用QSettings编写一个.ini文件,它将用作我的应用程序配置文件。 只有一个问题: QSettings在文件顶部添加一个组名[General]。 我以这种方式设置文件: 并这样写: 但是,我最终要提供该数据的程序无法处理[General]标签。 虽然从文件中手动
1回复

如何在哪里保存QSettings?

我开始为我的程序制作一个设置表格,但是我对设置数据有些困惑。 我可以创建一个QSettings实例,但是我应该怎么做呢?
2回复

在Delphi中是否有双引号字符串函数?

我知道QuotedStr函数,但是有一个类似的函数用于双引号
2回复

如何使用QSettings保存和加载数据?

我是 QT5 的完全初学者,我在 YouTube 上搜索了任何 QSettings 教程,但只找到了其中的 2 个,都是西班牙语的。 我正在尝试从 textEdit 存储简单文本,然后在单击保存/加载按钮时加载它。 到目前为止,我还没有能够做到这一点。 到目前为止,这是我的代码,没有错误,只是不起作
2回复

使用qsettings保存和加载修改

我有 2 个窗口(窗口 1)和(窗口 2):看图片。 - 在窗口 1 上有一个“编辑”按钮应该打开窗口 2(并加载保存在窗口 2 上的修改) -在窗口 2 上,我有 96 个按钮,它们最初是绿色的,如果我点击一个按钮,它会变成红色。 我拥有的“确定”按钮应该关闭窗口 2 并保存修改(红色按钮)。
3回复

使用QSettings保存64位整数

有什么整洁的方式,短期内恐难数量的QByteArray ,保存quint64与QSettings ? 问题是QVariant不接受qint64或quint64 。
2回复

使用QSettings保存QSpinBox和QComboBox的组合

现在,这让我很困惑, 举一个示例GUI的简短示例, 一世。 我在主窗口中有四个标签, label_1 , label_2 , label_3 , label_4 ii。 我也有spinBox , comboBox和pushButton 。 iii。 comboBox中的值为
1回复

是否可以序列化QSettings然后恢复它们?

我想通过应用程序的两个实例(例如通过套接字)传递使用QSetting保存的设置。 我在官方文档中看不到任何功能。 我唯一读的是例如这篇文章 是否将配置设置保存到QT中的XML文件? 但是我不想将设置保存在XML文件中,例如在Windows中,我想继续使用注册表。 我只想收集所有