1、在main函数中进行静态切换
QTranslator translator;
a.installTranslator(&translator);
2、在界面上进行动态切换
QTranslator translator;
translator.load(QString(":/language/cn.qm");a.installTranslator(&translator);
如果translator在某个API中定义的局部变量,则应该使用指针,否则只有该界面可以切换,其他界面都无法进行切换(建议在main函数中进行声明,保证其生命周期)
3、其他窗口要实现语言动态切换,需要重写changeEvent,判断是否为语言变化,如果是,则调用retranslateUi进行刷新,如果是自己手动设置的显示内容,则需要自己封装函数进行重新赋值(只要按照正常方式设置即可:setText())
void *****::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}