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;
    }
  • 相关阅读:
    HDU 5265 pog loves szh II (二分查找)
    不删除记录的表CRUD的常见处置
    如果真的不知道将来要做什么
    爪哇国新游记之三十三----目录文件操作
    一个类似股票看板的自刷新页面的制作
    转载:什么才是程序员的核心竞争力
    又见The request sent by the client was syntactically incorrect ()
    uefi版和装机版有什么区别?
    Mealy和moore型状态机的主要区别
    FIFO、UART、ALE解释
  • 原文地址:https://www.cnblogs.com/judes/p/9837536.html
Copyright © 2011-2022 走看看