我的基于qt4的应用程序通过调用retranslateUi()
函数动态更改GUI语言。它就像一个魅力,但当它处理QLabel
哪个文本由程序更改时,它会尝试翻译原始文本 - 在Qt Designer中指定的文本,而不是由我的程序设置的文本。
我理解这是因为retranslateUi()
是在构建过程中自动生成的,所以它不可能知道我的更改,但我宁愿完全跳过这样的QLabel
。有没有办法告诉Qt跳过retranslateUi()
中的某些小部件?或者,也许我可以在我的程序中禁用QLabel
的内容更改?
我知道我可以子类QLabel
并通过覆盖setText()
来解决这个问题,但我更喜欢使用标准QLabel
来使用Qt Designer来操作它。
答案 0 :(得分:6)
我记得,在Designer中你可以取消QLabel的翻译。默认情况下是。选择您不想翻译的标签,在属性编辑器中滚动到“文本”属性,展开它并取消选中翻译复选框。然后你应该再次生成ui _ * .h文件。之后,您的标签不应该是retranslateUi代码