gpt4 book ai didi

c++ - Qt 多语言应用程序

转载 作者:行者123 更新时间:2023-11-30 05:03:29 24 4
gpt4 key购买 nike

基本上,我正在尝试在 Qt 中制作一个多语言应用程序。为此,我在 中使用 lupdatelrelease 命令创建了 hindi.ts 文件和 hindi.qm 文件>qt 5.10.0 msvsc(2015) cmd 终端。我有一个语言设置小部件,其中有一个组合框,并根据所选语言将该值加载到注册表中。如下图所示图 1 是我的程序结构图2是语言设置界面

1. Block Diagram of Widgets in my Project

2. Language Gui Page

代码:

void Form_LanguageSettings::on_pbtn_Submit_clicked()
{
QSettings settings("HKEY_CURRENT_USER\\MyProject\\Employee", QSettings::NativeFormat);
settings.setValue("language", ui->cmb_Language->currentText());

}

因此,更新时没有问题。但是,当我想将它从注册表中检索到 ListOfDepartment 小部件时,我以这种方式检索它:

QSettings settings("HKEY_CURRENT_USER\\MyProject\\Employee", QSettings::NativeFormat);

QApplication *app;
QString SelectedLanguage;
SelectedLanguage=settings.value("language").toString();
if(SelectedLanguage.toLower() != "english")
{
if(SelectedLanguage=="hindi")
{
QTranslator translation;

translation.load("C:/MyProject/LanguagePack/ObjectFiles/HindiDevanagari.qm");
app->installTranslator(&translation);
}
}

这样我无法加载相应的语言。如果我在 main.cpp 文件中手动加载特定语言,它会加载,但如果我通过我的应用程序的设置小部件进行加载,则它不起作用。当要在单独的小部件中完成语言设置时,我该如何处理?我是 QT 多语言的新手。请问,有什么帮助吗?

最佳答案

尝试使用:

QTranslator* translation = new QTranslator();
translation->load("C:/MyProject/LanguagePack/ObjectFiles/HindiDevanagari.qm");
QApplication::instance()->installTranslator(translation);
//or also QApplication::installTranslator(translation), it is static

在您的代码中,QTranslator 实例在 if block 的末尾被销毁,并且未分配 app 变量

关于c++ - Qt 多语言应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49383692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com