Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在if语句中使用时,QTranslator不工作_C++_Qt_Qt5_Qtranslator - Fatal编程技术网

C++ 在if语句中使用时,QTranslator不工作

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

我使用Qt语言添加了一个翻译文件。然后,当我的应用程序加载时,我继续使用
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);