我注意到 Qt 文档在翻译的某些方面不是很冗长。我一直在玩弄它,试图通过反复试验来弄清楚他们的行为。最终目标是在运行时更改翻译,但我很困惑 QTranslator 对象在多大程度上可以重用。
考虑一下(其中“a”是应用程序的主要实例):
QTranslator translator;
translator.load("mytranslation_cz");
a.installTranslation(&translator);
(...)
a.removeTranslation(&translator)
现在翻译器已从应用程序中删除,但翻译器对象发生了什么?
在我的测试中,上面的代码又跟了这个
translator.load("mytranslation_fr");
a.installTranslation(&translator);
它在 main() 中没有做任何事情,当从其中一个小部件调用时(使用指向主应用程序的指针),它使应用程序崩溃。
因此,我怀疑每次要在应用程序中加载的翻译都需要创建一个 QTranslator 对象,并且我无法重用 QTranslator 对象。我的这个假设是对的吗?
作为一个附带问题。假设 QTranslator 对象没有被 removeTranslation() 触及,是否可以像这样稍后再次简单地安装它?
QTranslator translator;
QTranslator translator1;
translator.load("mytranslation_cz");
translator1.load("mytranslation_fr");
a.installTranslation(&translator);
(...)
a.removeTranslation(&translator);
a.installTranslation(&translator1);
(...)
a.removeTranslation(&translator1);
a.installTranslation(&trasnlator); //Will this work?
感谢您的澄清,因为我对在应用程序中安装和删除翻译时 QTranslation 对象会发生什么感到有些困惑,特别是如果 QTranslation 对象可以在运行时以某种方式重用于多个翻译?