在UI上维护Qt标签和文本的好方法

时间:2015-01-05 10:37:20

标签: c++ qt

维护Qt中UI上的所有字符串资源的最佳方法/常用做法是什么,尤其是组合框中的文本输入/文本等等(因为这些是代码本身经常使用的一次)?

我知道Android有这个字符串资源的东西,只需要在一个位置修改资源。

Qt是否也有这样的东西,或者我是否必须在代码中而不是在UI的XML本身中初始化字符串资源...

2 个答案:

答案 0 :(得分:1)

AFAIK,Qt中没有字符串资源的内置机制。如果要在构建时维护字符串,可以在一个.h / .cpp文件中将它们定义为全局变量,并在代码中重用它们。

否则,您可以使用Qt's translator个文件(二进制文件)并将其与您的应用程序一起加载。如果您需要更改字符串,则只需编辑翻译文件(xml)并使用lrelease实用程序“重新编译”它,而无需再次构建应用程序。

答案 1 :(得分:0)

有一种机制可以在应用程序中动态翻译文本,但它与Android字符串资源有点不同,但实现了相同的目标。

Qt使用标准的,众所周知的unix gettext建模的i18n系统。它的工作方式与iOS NSLocalizedString非常相似,如果响铃的话。

http://doc.qt.io/qt-5/qobject.html#tr

这也值得一读:

Android方法有点独特,你不应该期望它是一个"标准无处不在"。它有效,没关系,但它不是在桌面上做事的标准方式。