C++ 在if语句中使用时,QTranslator不工作
我使用Qt语言添加了一个翻译文件。然后,当我的应用程序加载时,我继续使用C++ 在if语句中使用时,QTranslator不工作,c++,qt,qt5,qtranslator,C++,Qt,Qt5,Qtranslator,我使用Qt语言添加了一个翻译文件。然后,当我的应用程序加载时,我继续使用QTranslator: QTranslator translator; bool loaded = translator.load(":/notizie_en_UK.qm"); bool installed = app.installTranslator(&translator); qDebug() << "Adding translatio
QTranslator
:
QTranslator translator;
bool loaded = translator.load(":/notizie_en_UK.qm");
bool installed = app.installTranslator(&translator);
qDebug() << "Adding translation" << loaded << installed;
QTranslator-translator;
bool load=translator.load(:/notizie_en_UK.qm);
bool installed=app.installTranslator(&translator);
qDebug()问题在于,一旦程序执行退出定义它的if
语句体,那么转换器
对象就会被销毁。您可以做的是:
[..]
if (phoneLang != QLocale::Italian) {
QTranslator *translator = new QTranslator;
bool loaded = translator->load(":/notizie_en_UK.qm");
bool installed = app.installTranslator(translator);
qDebug() << "Adding translation" << loaded << installed;
}
[..]
[..]
if (phoneLang != QLocale::Italian) {
QTranslator *translator = new QTranslator;
bool loaded = translator->load(":/notizie_en_UK.qm");
bool installed = app.installTranslator(translator);
qDebug() << "Adding translation" << loaded << installed;
}
[..]
// The application is translator's parent.
QTranslator *translator = new QTranslator(app);