
QMessageBox、QDialogButtonBox中英文翻译动态切换单独的固定显示成中文的方法很多对于需要中英文翻译动态切换的场景就不适用把固定的中文改成Qt翻译机制能处理的tr字符串就行了。本文基于Qt5.14.2版本对QMessageBox、QDialogButtonBox等Qt自带qm处理不到的地方进行随软件语言的动态切换不额外使用qt_zh_cn.ts不深入底层尽快对现有项目实现翻译。QDialogButtonBox直接在构造函数对button的setText进行翻译与普通翻译一致。ui-buttonBox-button(QDialogButtonBox::Ok)-setText(tr(Ok)); ui-buttonBox-button(QDialogButtonBox::Cancel)-setText(tr(Cancel));QMessageBox直接在设置QMessageBox的时候对button的setText进行翻译与普通翻译一致。msgBox.button(QMessageBox::Yes)-setText(tr(Yes)); msgBox.button(QMessageBox::No)-setText(tr(No)); msgBox.button(QMessageBox::Ok)-setText(tr(Ok));