zoukankan      html  css  js  c++  java
  • QSetting

    1、初始化,判断是否存在ini文件,如果不存在则新建
    void iniConfig()
    {
        QFileInfo fileInfo(".\config.ini");
        if (!fileInfo.isFile())
        {
            QSettings iniFile(".\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径;  参数2,将设置存储在ini文件中
            iniFile.setIniCodec(QTextCodec::codecForName("GB2312"));    //解决读取value值的中文乱码问题
            for (int i = 0; i < 8; i++)//8个组
            {
                QString tempStr = QString("car_%1").arg(i+1);
                iniFile.beginGroup(tempStr);
                iniFile.setValue("net_port", 1000);    //端口
                iniFile.setValue("net_server_ip", "192.168.40.11");    //服务器ip
                iniFile.setValue("net_local_ip", "192.168.40.10");    //本地ip
                iniFile.setValue("net_gwaddr", "192.168.40.1");    //网关
                iniFile.setValue("net_maskaddr", "255.255.255.0");    //子网掩码
                iniFile.endGroup();
            }
        }
    }
    2、读取值
    void getConfig(int carNUm)
    {
        QSettings iniFile(".\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径;  参数2,将设置存储在ini文件中
        iniFile.setIniCodec(QTextCodec::codecForName("GB2312"));
        QString tempStr = QString("car_%1").arg(carNUm);
        iniFile.beginGroup(tempStr);
        ui.lineEdit_31->setText(iniFile.value("net_port").toString());//端口
        ui.lineEdit_83->setText(iniFile.value("net_server_ip").toString());
        ui.lineEdit_32->setText(iniFile.value("net_local_ip").toString());
        ui.lineEdit_33->setText(iniFile.value("net_gwaddr").toString());
        ui.lineEdit_34->setText(iniFile.value("net_maskaddr").toString());
        iniFile.endGroup();
    }
    3、设置值
    QSettings iniFile(".\config.ini", QSettings::IniFormat);//参数1,代表新建ini文件的位置的绝对路径;  参数2,将设置存储在ini文件中
        iniFile.setIniCodec(QTextCodec::codecForName("GB2312"));    //解决读取value值的中文乱码问题
        QString tempStr = QString("car_%1").arg(ui.comboBox_3->currentIndex() + 1);
        iniFile.beginGroup(tempStr);
        iniFile.setValue("net_port", ui.lineEdit_31->text());    //端口
        iniFile.setValue("net_server_ip", ui.lineEdit_83->text());    //服务器ip
        iniFile.setValue("net_local_ip", ui.lineEdit_32->text());    //本地ip
        iniFile.setValue("net_gwaddr", ui.lineEdit_33->text());    //网关
        iniFile.setValue("net_maskaddr", ui.lineEdit_34->text());    //子网掩码
        iniFile.endGroup();

     代码:单例类

    class PacketConfig
    {
    private:
        static PacketConfig *instance;
        PacketConfig()=default;
        ~PacketConfig()
        {
            delete instance;
            delete sets;
        }
    public:
        static PacketConfig* getInstace();static QSettings* sets;
    };
    
    PacketConfig* PacketConfig::instance = nullptr;
    QSettings* PacketConfig::sets = nullptr;
    PacketConfig* PacketConfig::getInstace()
    {
        if(instance == nullptr)
        {
            instance = new PacketConfig;
            sets = new QSettings(QCoreApplication::applicationDirPath()+"./cfg.ini",QSettings::IniFormat);
        }
        return instance;
    }
  • 相关阅读:
    Docker 给 故障停掉的 container 增加 restart 参数
    使用docker化的nginx 反向代理 docker化的GSCloud 的方法
    apache benchmark 的简单安装与测试
    mysql5.7 的 user表的密码字段从 password 变成了 authentication_string
    Windows 机器上面同时安装mysql5.6 和 mysql5.7 的方法
    python4delphi 安装
    见证下神奇的时刻
    windows下面安装Python和pip终极教程
    python如何安装pip和easy_installer工具
    Tushare的安装
  • 原文地址:https://www.cnblogs.com/judes/p/9837536.html
Copyright © 2011-2022 走看看