retranslateUi() 清除 QLabel 文本

Posted

技术标签:

【中文标题】retranslateUi() 清除 QLabel 文本【英文标题】:retranslateUi() clears QLabel text 【发布时间】:2011-09-15 06:38:39 【问题描述】:

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

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

我知道我可以继承 QLabel 并通过覆盖 setText() 来解决这个问题,但我更喜欢使用标准 QLabel 以便能够使用 Qt Designer 对其进行操作。

【问题讨论】:

【参考方案1】:

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

【讨论】:

我虽然应该有这样的东西,但没有在text 下查看。这正是我想要的,非常感谢!

以上是关于retranslateUi() 清除 QLabel 文本的主要内容,如果未能解决你的问题,请参考以下文章

PyQt 保持 QLabel 大小纵横比

新手:Qt之QLabel类的应用

PyQt5 控件学习(一个一个学习之QLabel)

使用PyQt5拖放QLabel

从 QLabel 顶部移除间隙

带有像素图的透明 QLabel