retranslateUi()清除QLabel文本

qrd*_*rdl 3 c++ user-interface qt localization

我的基于qt4的应用程序通过调用retranslateUi()函数动态地更改GUI语言.它就像一个魅力,但当它处理QLabel程序更改的文本时,它会尝试翻译原始文本 - 在Qt Designer中指定的文本,而不是由我的程序设置的文本.

我理解它发生的原因retranslateUi()是因为它是在构建过程中自动生成的,所以它不可能知道我的更改,但我更愿意QLabel完全跳过这些.有没有办法告诉Qt跳过某些小部件retranslateUi()?或者,也许我可以QLabel在我的程序中禁用内容更改?

我知道我可以QLabel通过重写来setText()解决这个问题,但是我更喜欢使用标准QLabel来使用Qt Designer来操作它.

Kam*_*mek 6

我记得,在Designer中你可以取消QLabel的翻译.默认情况下是.选择您不想翻译的标签,在属性编辑器中滚动到"文本"属性,展开它并取消选中翻译复选框.然后你应该再次生成ui _*.h文件.之后,您的标签不应该是retranslateUi代码