将参数写入INI文件:
void MainWindow::writeIniFile(QString content)
{
QSettings *settings = new QSettings("./SystemSettings.ini",QSettings::IniFormat);
settings->setValue(“language”,content);
delete settings;
}
写入后文件内容:
从INI文件中读取参数:
QString MainWindow::readIniFile()
{
QSettings *settings = new QSettings("./SystemSettings.ini",QSettings::IniFormat);
QString lang = settings->value(“language”,“Chinese”).toString();
delete settings;
return lang;
}
多语言设置
main.cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//多语言
QTranslator *translator = new QTranslator();
QSettings *settings = new QSettings("./SystemSettings.ini", QSettings::IniFormat);
QString language = settings->value(“language”, “Chinese”).toString();//读取文件中保存的语言设置
qDebug() << "language>>> " << language;
delete settings;
if(language == “Chinese”)//文件中保存的是中文
{
bool res = translator->load("./QtLinguist_zh_CN.qm");//加载中文语言文件
qDebug() << "res>>> " << res;
a.installTranslator(translator);//将翻译家应用到程序中
}
else//文件中保存的是英文
{
bool res = translator->load("./QtLinguist_zh_EN.qm");//
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
加载英文语言文件
qDebug() << "res>>> " << res;
a.installTranslator(translator);//将翻译家应用到程序中
}
MainWindow w;
w.show();
return a.exec();
}
写入参数:
void MainWindow::on_btn_Chinese_clicked()
{
writeIniFile(“Chinese”);//将当前选择的中文设置写入ini文件中
QMessageBox::information(this,tr(“infomation”),tr(“Restart the software for the settings to take effect”));
}
void MainWindow::on_btn_English_clicked()
{
writeIniFile(“English”);//将当前选择的英文设置写入ini文件中
QMessageBox::information(this,QStringLiteral(“提示”),QStringLiteral(“语言设置在重启系统后生效”));
}
注意:语言文件的路径问题;按照本文程序中的设置,需要将语言文件 QtLinguist_zh_CN.qm 和 QtLinguist_zh_EN.qm 放置在运行程序的父目录中;
运行效果