QT之配置文件編寫工具類

QT之配置文件編寫工具類

前言

其實不爲了什麼,發一個準備自己用卻還沒有用的工具類吧!哈哈~~注意是我還沒用過的,不知道有沒有bug。

源代碼

頭文件

#ifndef QCONFIGBUILDER_H
#define QCONFIGBUILDER_H

#include <QString>
#include <QVariant>

/*!
 * \class QConfigBuilder
 * \brief The QConfigBuilder class is a configuration file operation tool class, which can make users more convenient to operate configuration files.
 */
class QConfigBuilder
{
public:
    QConfigBuilder();
    QConfigBuilder(QString configPath);

    /*!
     * \brief Set configuration file path.
     * \param configPath: configuration file path
     */
    void setConfigPath(QString configPath);

    /*!
     * \brief Create configuration file.
     * \param filePath: configuration file path
     */
    void createIniFile(QString filePath);

    /*!
     * \brief Get parameter value from configuration file.
     * \param groupName: parameter group name
     * \param keyName: parameter name
     * \return
     */
    QVariant getValue(QString groupName, QString keyName);
    /*!
     * \brief Set parameter value from configuration file.
     * \param groupName: parameter group name
     * \param keyName: parameter name
     * \param value: parameter value
     */
    void setValue(QString groupName, QString keyName, QVariant value);
    /*!
     * \brief remove parameter from configuration file.
     * \param groupName: parameter group name
     * \param keyName: parameter name
     */
    void removeKey(QString groupName, QString keyName);

private:
    QString configPath;
};

#endif // QCONFIGBUILDER_H

源文件

#include "qconfigbuilder.h"
#include <QFile>
#include <QSettings>

QConfigBuilder::QConfigBuilder()
{

}

QConfigBuilder::QConfigBuilder(QString configPath)
{
    this->setConfigPath(configPath);
}

void QConfigBuilder::setConfigPath(QString configPath)
{
    if(this->configPath != configPath)
    {
        this->configPath = configPath;
        createIniFile(configPath);
    }

}

void QConfigBuilder::createIniFile(QString filePath)
{
    QFile file(filePath);
    file.open(QFile::ReadWrite);
    if (file.isOpen())
    {
        file.close();
    }
}

QVariant QConfigBuilder::getValue(QString groupName, QString keyName)
{
    QSettings set(configPath, QSettings::IniFormat);
    QVariant value = set.value(QString("%0/%1").arg(groupName, keyName));
    return value;
}

void QConfigBuilder::setValue(QString groupName, QString keyName, QVariant value)
{
    QSettings set(configPath, QSettings::IniFormat);
    set.setValue(QString("%0/%1").arg(groupName, keyName), value);
    //set.beginGroup(groupName);
    //set.setValue(keyName, value);
    //set.endGroup();
}

void QConfigBuilder::removeKey(QString groupName, QString keyName)
{
    QSettings set(configPath, QSettings::IniFormat);
    set.remove(QString("%0/%1").arg(groupName, keyName));
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章