发表人:coder12345 2023-11-09 10:16:41 最新回复: 2023-11-09 10:16:41
对于使用ui文件编写的用户界面一般在动态切换语言后不需要做特殊处理。而对于其他一些代码中使用tr包裹的字符串可能在语言动态切换之后无法更新显示,这时候需要在对应的位置添加一个LanguageChange事件的处理,在事件中重新调用tr即可。Qt在installTranslator或removeTranslator时都会触发该事件。
void MyWidget::changeEvent(QEvent *event) { if (event->type() == QEvent::LanguageChange) { titleLabel->setText(tr("Document Title")); ... okPushButton->setText(tr("&OK")); } else QWidget::changeEvent(event); }