2013-01-11 70 views
1

在Qlinguist中,我翻译了ui和一些相应的警告消息,生成了qm文件,并加载它,但结果只能翻译ui,而不能翻译这些警告消息。我的代码是这样的:QLinguist无法翻译警告消息

void MainWindow::translate() 
{ 
    QTranslator translator; 
    translator.load ("Test.qm", "D:\\"); 
    qApp->installTranslator (&translator); 
    retranslateUi (this); 
} 

MainWindow::MainWindow (QWidget *parent) : QMainWindow (parent) 
{ 
    setupUi(this); 
    translate(); 
    ... 
} 

我的一个警告消息的是这种形式:

QMessageBox::warning(this, QMessageBox::tr("ERROR"), QMessageBox::tr("Invalid IP adress")); 

此字符串可以负载通过lupdate,我把它翻译在其qm文件,但仍不能运行后查看它的翻译。 Here我问过这个问题,但我必须打开这个新问题才能在别人的帮助下解决问题。有人可以帮助我吗?先谢谢你。

回答

2

在栈上创建翻译器时,它将在translate()的末尾立即被删除。 尝试在堆上创建它,以便它继续存在。