retranslateUi() 清除 QLabel 文本
Posted
技术标签:
【中文标题】retranslateUi() 清除 QLabel 文本【英文标题】:retranslateUi() clears QLabel text 【发布时间】:2011-09-15 06:38:39 【问题描述】:我的基于 qt4 的应用程序通过调用 retranslateUi()
函数来动态更改 GUI 语言。它就像一个魅力,但是当它处理程序更改文本的QLabel
时,它会尝试翻译原始文本 - 在 Qt Designer 中指定的文本,而不是由我的程序设置的文本。
我知道这是因为retranslateUi()
是在构建过程中自动生成的,所以它不可能知道我的更改,但我更愿意完全跳过这样的QLabel
s。有没有办法告诉 Qt 跳过 retranslateUi()
中的某些小部件?或者,也许我可以在我的程序中禁用 QLabel
的内容更改?
我知道我可以继承 QLabel
并通过覆盖 setText()
来解决这个问题,但我更喜欢使用标准 QLabel
以便能够使用 Qt Designer 对其进行操作。
【问题讨论】:
【参考方案1】:我记得,在 Designer 中,如果 QLabel 被翻译,您可以取消选中它。默认情况下是。选择您不想翻译的标签,在属性编辑器中滚动到“文本”属性,展开它并取消选中翻译复选框。然后你应该再次生成 ui_*.h 文件。之后,您的标签不应出现在 retranslateUi 代码中
【讨论】:
我虽然应该有这样的东西,但没有在text
下查看。这正是我想要的,非常感谢!以上是关于retranslateUi() 清除 QLabel 文本的主要内容,如果未能解决你的问题,请参考以下文章