class Config { public: Config(QString filename); ~Config(); void setValue(QString node, QString key, QVariant value);//设置 QVariant getValue(QString node, QString key);//查询值 bool contains(QString node, QString key);//查询是否存在(node,key) QStringList getGroupChilds(QString node); QStringList getGroupChilds(); void removeGroup(QString node); private: QString m_filename; QSettings *m_setting; };
Config::Config(QString filename) { if(filename.isEmpty()){ m_filename = QCoreApplication::applicationDirPath() + "/config.ini"; }else{ m_filename = filename; } m_setting = new QSettings(m_filename, QSettings::IniFormat); m_setting->setIniCodec("UTF-8"); } Config::~Config() { delete m_setting; } void Config::setValue(QString node, QString key, QVariant value) { m_setting->setValue(QString("/%1/%2").arg(node).arg(key), value); } QVariant Config::getValue(QString node, QString key) { QVariant variant = m_setting->value(QString("/%1/%2").arg(node).arg(key)); return variant; } bool Config::contains(QString node, QString key) { return m_setting->contains(QString("/%1/%2").arg(node).arg(key)); } QStringList Config::getGroupChilds(QString node) { m_setting->beginGroup(node); QStringList list = m_setting->childKeys(); m_setting->endGroup(); return list; } QStringList Config::getGroupChilds() { return m_setting->childGroups(); } void Config::removeGroup(QString node) { m_setting->remove(node); }
节点相当于组