qt c++设置ini的类
时间: 2024-10-25 16:09:04 浏览: 13
Qt读写ini文件类.zip
在Qt C++中,你可以创建一个专门处理INI文件的类来管理配置数据。这里是一个简单的例子,展示如何创建一个IniReader和IniWriter类:
```cpp
#include <QFile>
#include <QSettings>
class IniSection {
public:
IniSection(const QString §ionName) : sectionName_(sectionName) {}
void setValue(const QString &key, const QString &value);
QString value(const QString &key) const;
private:
QString sectionName_;
QHash<QString,QString> values_;
};
void IniSection::setValue(const QString &key, const QString &value)
{
values_[key] = value;
}
QString IniSection::value(const QString &key) const
{
return values_.value(key);
}
class IniManager {
public:
IniManager(const QString &filePath);
void readIni(IniSection §ion);
void writeIni(const IniSection §ion);
private:
QSettings settings_;
};
IniManager::IniManager(const QString &filePath)
{
settings_ = QSettings(filePath, QSettings::IniFormat);
}
void IniManager::readIni(IniSection §ion)
{
settings_.beginGroup(section.sectionName_);
for (const auto &pair : settings_.allKeys()) {
section.setValue(pair, settings_.value(pair));
}
settings_.endGroup();
}
void IniManager::writeIni(const IniSection §ion)
{
settings_.beginGroup(section.sectionName_);
foreach (const auto &entry, section.values_) {
settings_.setValue(entry.key(), entry.value());
}
settings_.endGroup();
}
// 使用示例
int main()
{
IniManager ini("config.ini");
IniSection configSection("AppConfig");
ini.readIni(configSection);
// ... 然后可以访问configSection.values_获取或修改值
ini.writeIni(configSection); // 写回配置文件
return 0;
}
```
阅读全文