qt中生成并读取配置文件Ini
生活随笔
收集整理的這篇文章主要介紹了
qt中生成并读取配置文件Ini
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引言
做項目的時候需要將一些參數設置的更加靈活,通過用戶修改來控制程序中一些參數,所以寫到了配置文件中方便處理。
實現
下面是配置文件生成、讀取的代碼。
configinfo.h
configinfo.cpp
#include "configinfo.h" #include <QCoreApplication> #include <QMutexLocker> #include <QDebug>ConfigInfo *ConfigInfo::m_config = nullptr; QMutex ConfigInfo::m_mutex; int ConfigInfo::m_reconnectTime; int ConfigInfo::m_sendHeartTime; int ConfigInfo::m_reconnectCount; ConfigInfo::ConfigInfo() {QString strPath = getExcutableProgramPath();qDebug()<<"strPath:"<<strPath;m_setting = new QSettings(strPath,QSettings::IniFormat);writeIniFile();//配置文件已經存在要生成的內容后就可以不用再去寫 }ConfigInfo *ConfigInfo::getInstance() {if (m_config == nullptr) {static QMutexLocker locker(&m_mutex);if (m_config == nullptr) {m_config = new ConfigInfo();return m_config;}}return m_config; }int ConfigInfo::getReconnectTime() {return m_reconnectTime; }int ConfigInfo::getSendHeartTime() {return m_sendHeartTime; }int ConfigInfo::getReconnectCount() {return m_reconnectCount; }QString ConfigInfo::getExcutableProgramPath() {return QCoreApplication::applicationDirPath() + "/websocketConfig.ini"; }void ConfigInfo::writeKeyValue(QString strSection, QString strKey, QVariant value) {m_setting->setValue(QString("%1/%2").arg(strSection).arg(strKey),value);//注意中間的/ }void ConfigInfo::writeIniFile() {writeKeyValue("Websocket","reconnectTime",3000);writeKeyValue("Websocket","sendHeartTime",3000);writeKeyValue("Websocket","reconnectCount",5);getIniFileValue(); }void ConfigInfo::getIniFileValue() {m_reconnectTime = m_setting->value("Websocket/reconnectTime").toInt();//獲取分段下的鍵m_sendHeartTime = m_setting->value("Websocket/sendHeartTime").toInt();m_reconnectCount = m_setting->value("Websocket/reconnectCount").toInt(); }mian.cpp
#include <QCoreApplication> #include "configinfo.h" #include <QDebug>int main(int argc,char *argv[]) {QCoreApplication a(argc,argv);qDebug()<<QStringLiteral("重連次數:")<<ConfigInfo::getInstance()->getReconnectCount();qDebug()<<QStringLiteral("重連時間間隔:")<<ConfigInfo::getInstance()->getReconnectTime();qDebug()<<QStringLiteral("發送心跳間隔:")<<ConfigInfo::getInstance()->getSendHeartTime();return a.exec();//這里寫為return 0不能生成配置文件ini }以上就是配置文件的生成和讀取,main.cpp中主要是測試了一下生成的文件中的內容能否正確讀取。
心得:
對于被多個類或者整個項目共享的類,若是一個類對象可以,就將該類定義為單例模式。此外一些獲取變量的值的函數可以定義為靜態的,就盡量定義為靜態函數,方便外部調用,而且共享該值,不用多次拷貝,
總結
以上是生活随笔為你收集整理的qt中生成并读取配置文件Ini的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国家开放大学计算机应用模块3客观题答案,
- 下一篇: mysql数据库连接不稳定_连接 MyS