QT之配置文件编写工具类——QConfigBuilder

QT之配置文件编写工具类——QConfigBuilder

前言

其实不为了什么,只是今天是1024节得发篇文章,可是没东西写,就发一个准备自己用却还没有用的工具类吧!哈哈~~注意是我还没用过的,不知道有没有bug。

源代码

头文件

#ifndef QCONFIGBUILDER_H
#define QCONFIGBUILDER_H

#include <QString>
#include <QVariant>

class QSettings;
/*!
 * \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(QString configPath);
    ~QConfigBuilder();

    /*!
     * \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;
    QSettings *set;
};

#endif // QCONFIGBUILDER_H

源文件

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

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

QConfigBuilder::~QConfigBuilder()
{
    delete set;
}

void QConfigBuilder::setConfigPath(QString configPath)
{
    if(this->configPath != configPath)
    {
        this->configPath = configPath;
        createIniFile(configPath);
        set = new QSettings(configPath, QSettings::IniFormat);
    }

}

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

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

void QConfigBuilder::setValue(QString groupName, QString keyName, QVariant value)
{
    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));
}


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值