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

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

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

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

【问题讨论】:

    标签: c++ qt user-interface localization


    【解决方案1】:

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

    【讨论】:

    • 我虽然应该有这样的东西,但没有在text 下查看。这正是我想要的,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多