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, "退出"); 
}

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QSettingsQt 框架中提供的一个简单的读写配置文件的类。它可以用来读写不同格式的配置文件,包括 ini、XML、注册表等等。在这里,我们介绍一下如何使用 QSettings读写 ini 文件。 在使用 QSettings读写 ini 文件之前,需要先创建一个 QSettings 对象,并指定要读写配置文件的路径和格式。在本例中,我们假设配置文件的路径为 config.ini,格式为 ini。代码如下: ```cpp QSettings settings("config.ini", QSettings::IniFormat); ``` 接下来,我们可以使用 setValue() 和 value() 函数来写入和读取配置项。例如,我们可以将一个字符串写入配置文件中: ```cpp settings.setValue("name", "John"); ``` 接着,我们可以使用 value() 函数来读取这个配置项: ```cpp QString name = settings.value("name").toString(); ``` 如果配置项不存在,value() 函数会返回一个空值,因此我们需要使用默认值来避免程序出错。例如,我们可以使用下面的代码来读取一个整数配置项,如果配置项不存在,则返回默认值 100: ```cpp int value = settings.value("number", 100).toInt(); ``` 最后,需要注意的是,在使用完 QSettings 对象后,应该调用 sync() 函数将数据写入到文件中: ```cpp settings.sync(); ``` 完整的读写 ini 文件的示例代码如下: ```cpp #include <QSettings> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); // 创建 QSettings 对象 QSettings settings("config.ini", QSettings::IniFormat); // 写入配置项 settings.setValue("name", "John"); settings.setValue("age", 30); // 读取配置项 QString name = settings.value("name").toString(); int age = settings.value("age", 0).toInt(); // 输出配置项 qDebug() << "Name:" << name; qDebug() << "Age:" << age; // 同步数据到文件中 settings.sync(); return app.exec(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值