In meiner App, QApplication subclassing, um eine Menge Dinge zu tun, wie zentralisierte Ausnahmebehandlung, SQLite Datenbankverbindung, Initialisieren von Standardeinstellungen (wenn nötig) über QSettings. Und vor allem das Laden von Übersetzungen. Ich mache es im Konstruktor, und wenn ich es tue:Qt: Ich kann Übersetzer in Unterklasse von QApplication nicht installieren
installTranslator (&translator);
qDebug() << "Translation from PApplication:"
<< translate ("PAddFormWindow", "Dialog");
Ich bekomme wieder sehr richtig Übersetzung (in Russisch). Aber in meiner App sehe ich alles auf Englisch. Was noch schlimmer ist, ich sehe es auch in Englisch, wenn ich versuche Übersetzung zu erhalten immediatelly nach meiner Anwendung Objekt initialisiert wird:
PApplication a ("PCorrect", argc, argv);
qDebug() << "Translation from void main():"
<< a.translate ("PAddFormWindow", "Dialog");
Also, warum wird es nicht funktionieren? Liegt es daran, dass ich es im Konstruktor mache? Ich sollte auch erwähnen, dass die PApplication-Klasse nicht in der App selbst deklariert und definiert ist, sondern in einer dynamisch geladenen Bibliothek (ich entwickle eine Anwendungssuite). Und dass meine Plattform Windows XP mit Qt 4.7.0 ist.
Nur um zu überprüfen: Wenn Sie 'installTranslator (& Übersetzer)', Sie beziehen sich nicht auf eine lokale Variable namens "Übersetzer", richtig? Ist es ein Feld oder etwas? –
@Sergey: Oh mein Gott. Wie Oh mein Gott. Ich dachte, Übersetzer wird bei der Installation kopiert :) Bitte, mach es eine Antwort, damit ich +1 geben und es akzeptieren kann. – Septagram