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;
    }
  • 相关阅读:
    linux中断子系统
    注释规范
    linux下C获取文件的大小
    oracle 11g 修改内存示例
    联想system sr650安装windows
    iphone 手机音乐制作
    canon dpp 编辑相机raw软件
    浪潮nf5270m5 安装2012
    三种刻录工具及用法
    centos7.5 连接存储配置iscsi
  • 原文地址:https://www.cnblogs.com/judes/p/9837536.html
Copyright © 2011-2022 走看看