retranslateUi()清除QLabel中的文本。

4
我的基于qt4的应用程序通过调用retranslateUi()函数动态更改GUI语言。它非常有效,但是当程序处理文本更改的QLabel时,它会尝试翻译原始文本 - 即在Qt Designer中指定的文本,而不是由我的程序设置的文本。
我知道这是因为retranslateUi()是在构建过程中自动生成的,所以它不可能知道我的更改,但我希望完全跳过这样的QLabel。是否有一种方法告诉Qt跳过retranslateUi()中的某些小部件?或者,也许我可以在我的程序中禁用QLabel的内容更改?
我知道我可以子类化QLabel并通过覆盖setText()来解决这个问题,但我更喜欢使用标准的QLabel以便能够使用Qt Designer进行操作。
1个回答

8

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


我本以为应该有这样的东西,但没有在“text”下查找。这正是我正在寻找的,非常感谢! - qrdl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接