在 UI 上维护 Qt 标签和文本的好方法
Good way to maintain Qt labels and text on UI
维护 Qt 中 UI 上的所有字符串资源的最佳 way/common 实践是什么,尤其是组合框中的文本 input/text 等(因为这些曾经是代码本身中经常使用的)?
我知道 Android 有这个字符串资源的东西,这样资源只需要在一个位置修改。
Qt 是否也有类似的东西,或者我是否必须在代码中而不是在 UI 的 XML 本身中初始化字符串资源...
据我所知,Qt 中没有内置的字符串资源机制。如果您想在构建时维护字符串,您可以在一个 .h/.cpp 文件中将它们定义为全局变量并在您的代码中重用它们。
否则,您可以使用 Qt's translator files (binary) and load them along with your application. If you need to change a string, you simply will need to edit the translation file (xml) and "recompile" it with lrelease 实用程序而无需再次构建应用程序。
在应用程序中有一种动态翻译文本的机制,但它的工作方式与 Android 字符串资源有点不同,但实现了相同的目标。
Qt 使用 i18n 系统,仿照标准的、众所周知的 unix gettext
。它的工作方式与 iOS NSLocalizedString
非常相似,如果它响起的话。
http://doc.qt.io/qt-5/qobject.html#tr
这也值得一读:
Android 方法有点独特,您不应期望它是 "standard everywhere"。它可以工作,没关系,但这不是在桌面上做事的标准方式。
维护 Qt 中 UI 上的所有字符串资源的最佳 way/common 实践是什么,尤其是组合框中的文本 input/text 等(因为这些曾经是代码本身中经常使用的)?
我知道 Android 有这个字符串资源的东西,这样资源只需要在一个位置修改。
Qt 是否也有类似的东西,或者我是否必须在代码中而不是在 UI 的 XML 本身中初始化字符串资源...
据我所知,Qt 中没有内置的字符串资源机制。如果您想在构建时维护字符串,您可以在一个 .h/.cpp 文件中将它们定义为全局变量并在您的代码中重用它们。
否则,您可以使用 Qt's translator files (binary) and load them along with your application. If you need to change a string, you simply will need to edit the translation file (xml) and "recompile" it with lrelease 实用程序而无需再次构建应用程序。
在应用程序中有一种动态翻译文本的机制,但它的工作方式与 Android 字符串资源有点不同,但实现了相同的目标。
Qt 使用 i18n 系统,仿照标准的、众所周知的 unix gettext
。它的工作方式与 iOS NSLocalizedString
非常相似,如果它响起的话。
http://doc.qt.io/qt-5/qobject.html#tr
这也值得一读:
Android 方法有点独特,您不应期望它是 "standard everywhere"。它可以工作,没关系,但这不是在桌面上做事的标准方式。