gpt4 book ai didi

qt - 如何正确使用 QSettings

转载 作者:行者123 更新时间:2023-12-04 14:14:38 30 4
gpt4 key购买 nike

我想用QSettings保存高分,但它不能正常工作。我在 2 个不同的文件中保存和读取这些值。

这是我负责将值添加到数组中的代码:

QSettings settings;
settings.beginWriteArray("results");
int size = settings.beginReadArray("results");
settings.setArrayIndex(size);
settings.setValue("result", "qwerty");

和阅读:
QSettings settings;
QString tmp = "";
int size = settings.beginReadArray("results");
for(int i = 0; i < size; ++i)
{
settings.setArrayIndex(i);
tmp += settings.value("result").toString();
}
ui->label->setText(tmp);

最佳答案

我会这样做:

假设我们有一个类的两个函数成员来加载和保存分数。
要使用注册表,您必须指定应用程序名称和编辑器:

QSettings settings("<MyEditorName>","<myAppName>");
saveScores(&settings);
loadScores(&settings);

要使用文件,您必须提供文件路径和格式:
QSettings settings("<filepath>",QSettings::iniFormat);
saveScores(&settings);
loadScores(&settings);

来自您的代码和文档;成员函数如下。
该类计算一个分数向量(QVector mScores)

保存分数的功能:
void myClass::saveScores(QSettings* iSettings){
iSettings->beginGroup("Scores");
iSettings->beginWriteArray("results");
for(int i=0; i<mScores.count();i++){
iSettings->setArrayIndex(i);
iSettings->setValue("result",mScores[i]);
}
iSettings->endArray();
iSettings->endGroup();
}

加载分数的函数
void myClass::loadScores(QSettings* iSettings){
iSettings->beginGroup("Scores");
int size = iSettings->beginReadArray("results");
mScores.resize(size);
for(int i=0;i<size;i++){
iSettings->setArrayIndex(i);
mScores[i] = iSettings->value("results").toInt();
}
iSettings->endArray();
iSettings->endGroup();
}

我正在使用组在保存文件中提供更好的可见性,但您可以删除它们

关于qt - 如何正确使用 QSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16250994/

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