QSettings 读写ini配置文件和QMap存储字符串用于中英文切换

一、QSettings读写ini文件

目的:通过创建读写ini配置文件,判断应用使用哪种语言。

g_csCurrentDir  = QCoreApplication::applicationDirPath(); //读取应用程序可执行文件所在的目录。
bool MainWindow::loadInitFile(){
    QString iniFile = g_csCurrentDir + "/Language/LanguageSettings.ini"; //配置文件名
    QFileInfo iniFileInfo(iniFilePath);//用于获取文件信息
    QSettings* iniSettings = new QSettings(iniFilePath, QSettings::IniFormat);//根据文件名构造QSetting对象并指明文件为ini格式。

    if(iniSettings == NULL){
        return false;
    }
    iniSettings->setIniCode("UTF8")//设置编码方式  --->解析ini配置文件中的文字问题
    if(iniFileInfo.isFile()){ //文件存在
        g_curLanguage = iniSettings->value(QString("/%1/%2").arg("Language").arg("Current Language")).toString();从配置文件里读取当前使用的语言
        g_curLanguage == "Simplified Chinese" ? g_curLanguageID = 1 : g_curLanguageID = 2;

        QFile::remove(iniFilePath);//删除配置文件
        iniSettings->setValue(QString("/%1/%2").arg("Language").arg("Current Language"), "Simplified Chinese");//重新建立书写配置文件

        if(g_curLanguage == "Simplified Chinese"){
            g_controlTextMap.clear();
            loadChinese();//加载中文文本信息
        }
        else{
            g_controlTextMap.clear();
            loadEnglish();//加载英文文本信息
        }
    }
    else{
        g_curLanguage == "Simplified Chinese" ? g_curLanguageID = 1 : g_curLanguageID = 2;
        iniSettings->setValue(QString("/%1/%2").arg("Language").arg("Current Language"), "Simplified Chinese");

        if(g_curLanguage == "Simplified Chinese"){
            g_controlTextMap.clear();
            loadChinese();
        }
        else{
            g_controlTextMap.clear();
            loadEnglish();
        }
    }
    delete iniSettings;
    return true;
}

二 QMap存储字符串信息

void MainWindow::loadChinese(){    
    //Login
    g_controlTextMap.insert(8000+1, "用户名");
    g_controlTextMap.insert(8000+2, "密码");
    g_controlTextMap.insert(8000+3, "登录");
    g_controlTextMap.insert(8000+4, "退出"); 
}

目的:方便界面上文字的中英文切换

你可能感兴趣的:(QT)