一、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, "退出");
}
目的:方便界面上文字的中英文切换