Qt のドキュメントは、翻訳のいくつかの面であまり冗長ではないことに気付きました。試行錯誤を使って彼らの行動を理解しようとして、私はそれをいじっていました。最終的な目標は、実行時に翻訳を変更することですが、QTranslator オブジェクトをどの程度再利用できるかについて非常に混乱しています。
これを考慮してください (「a」はアプリケーションのメイン インスタンスです)。
QTranslator translator;
translator.load("mytranslation_cz");
a.installTranslation(&translator);
(...)
a.removeTranslation(&translator)
翻訳者はアプリケーションから削除されましたが、翻訳者オブジェクトはどうなったのでしょうか?
私のテストでは、上記のコードの後にこれが再び続きました
translator.load("mytranslation_fr");
a.installTranslation(&translator);
main() では何もせず、ウィジェットの 1 つから (メイン アプリへのポインターを使用して) 呼び出されると、アプリケーションがクラッシュしました。
したがって、アプリケーションにロードする翻訳ごとに 1 つの 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 オブジェクトを複数の翻訳に再利用できる場合はどうなるかについて、少し混乱しているため、明確にしていただきありがとうございます。